Удаление ведущих нулей из числа в Javascript [дубликат]




Возможные Дубликаты:
усечь ведущие нули строки в Javascript






каков самый простой и кросс-браузер совместимый способ удаления ведущих нулей из числа в Javascript ?



например, если у меня есть значение текстового поля как 014 или 065, он должен возвращать только 14 или 65

557   3  

3 ответов:

попробовать parseInt.

parseInt("065", 10);


Второй параметр предназначен для radix и в соответствии с документацией он всегда должен быть указан. MDN говорит:,

radix

целое число, которое представляет собой основание вышеупомянутого строка. Всегда указывайте этот параметр, чтобы исключить путаницу чтения и гарантировать предсказуемое поведение. Различных реализаций производить различные результаты, когда не указано основание.
.............
.............
Если radix не определен или 0 (или отсутствует), JavaScript предполагает следующее:

  • если на входе строка начинается с "0x" или "0X", radix равен 16 (шестнадцатеричный) и остаток строки анализируется.
  • если на входе строка начинается с "0", корень-восемь (восьмеричный) или 10 (десятичный). Именно то, что корень выбор зависит от реализации. ECMAScript 5 указывает, что используется 10 (десятичное число), но не все браузеры поддерживают этого пока нет. По этой причине всегда указывать основание системы счисления при использовании parseInt.
  • если на входе строка начинается с любого другого символа, основание равно 10 (десятичное число.)

например, в некоторых реализациях parseInt("01803") даст 1. Если цель-сделать 1803, вызов parseInt с a радиус 10 для обеспечения разбора выполняется в базовой десятичной системе счисления. То есть: parseInt("01803", 10) даст 1803. Обратите внимание, что для нецелого значения parseInt() округляет число, возвращаемое в виде целого числа. paseInt("018.03", 10) даст 18.

регулярное выражение:

"014".replace(/^0+/, '')

непонятно, почему вы хотите сделать это. Если вы хотите получить правильное числовое значение, вы можете использовать унарный +[docs]:

value = +value;

Если вы просто хотите отформатировать текст, то регулярное выражение может быть лучше. Это зависит от ценностей, с которыми вы имеете дело, я бы сказал. Если у вас есть только целые числа, то

input.value = +input.value;

- это нормально. Конечно, это также работает для значений с плавающей точкой, но в зависимости от того, сколько цифр у вас после точки преобразование ее в число и обратно в строку может (по крайней мере, для отображения) удалить некоторые.

Comments

    Ничего не найдено.