Какой простой способ удалить последние два символа строки?
javascript
string
variables
erase
Томкай
источник
источник
parseInt('245px', 10)
parseInt('09')
!использовать
var size = parseInt('245px', 10);
где 10 - основание системы счисления, определяющее
parseInt
синтаксический анализ до десятичного значенияиспользуйте parseInt, но не используйте parseInt без основания
Функция parseInt () анализирует строку и возвращает целое число.
Подпись
parseInt(string, radix)
Второй аргумент заставляет parseInt использовать десятичную систему счисления.
Почему? если $ (this) .attr ('num') будет "08", parsInt без основания системы счисления станет 0
источник
Чтобы преобразовать значение пикселя без «px» в конце. используйте parseFloat.
parseFloat('245px'); // returns 245
Примечание. Если вы используете parseInt, значение будет правильным, если значение является целым числом. Если значение является десятичным, например 245,50 пикселей, то значение будет округлено до 245.
источник
parseFloat()
не принимает десятичные какparseInt()
(См developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/... и stackoverflow.com/ вопросы / 8555649 /… )Это делает именно то, о чем вы просите: удалить последние два символа строки:
s.substr(0, s.length-2);
источник
Удивительно, но метод подстроки на
s.substr(0, s.length-2);
самом деле намного быстрее для удаленияpx
(да, он не такой чистый, и если есть место, он останется -"250px" -> "250"
vs"250 px" -> "250 "
).Если вы хотите учесть пробелы (что, вероятно, вам следует), то использование
.trim()
функции фактически замедлитsubstr
тест настолько, чтоparseInt
метод действительно станет лучше.Дополнительным преимуществом использования
parseInt(s, 10)
является то, что вы также получаете преобразование типов и можете сразу же начать применять его к математическим функциям.В конце концов, все зависит от того, что вы планируете делать с результатом.
substr
метода без обрезки.s.substr(0, s.length-2) == 0
, тогдаsubstr
лучше всего будет использовать этот метод, поскольку"250 " == 250
(даже с пробелом) в результате получитсяtrue
parseInt
маршрута.http://jsperf.com/remove-px-from-coord
Тесты на jspref учитывают пробел. Я также пробовал
s.split('px')[0]
иs.replace(/ *px/g, '')
функцию, обе оказались медленнее.Не стесняйтесь добавлять дополнительные тестовые примеры.
источник
Хотя parseInt () - хороший вариант, но все же хорошо иметь много других решений
var pixels = '245px'; Number(pixels.replace('px', ''));
источник
Проверьте http://www.w3schools.com/jsref/jsref_substr.asp В вашем случае будет что-то вроде
string.substr(0, string.length - 2)
источник
Я предпочитаю:
"245px".replace(/px/,'')*1
так как он не окружает ввод.
Кроме того, он
*1
предназначен для преобразования в int.источник
substr()
в настоящее время является наследием функция ; используйтеsubstring()
вместо этого: (синтаксис в этом случае тот же )str.substring(0, str.length-2);
Или используйте
slice()
:str.slice(0, -2);
slice()
выглядит намного чище, ИМО. Отрицательные значения отсчитываются с конца.источник
rem
значений.