Удалите начальные нули из числа в Javascript

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

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

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

Ответ 1

Попробуйте parseInt.

parseInt("065", 10);

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

radix

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

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

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

Ответ 2

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

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

Ответ 3

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

value = +value;

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

input.value = +input.value;

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