Какой простой способ удалить последние два символа строки?
Ответы:
Чтобы преобразовать 245px
в 245, просто запустите:
parseInt('245px', 10);
Он сохраняет только ведущие числа и отбрасывает все остальные.
parseInt('09')
!
использовать
var size = parseInt('245px', 10);
где 10 - основание системы счисления, определяющее 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);
самом деле намного быстрее для удаления 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
значений.
parseInt('245px', 10)