Можно ли добавить дополнительный ноль перед входом, если полученное целое число состоит из трех цифр

0

Привет, У меня есть поле ввода, которое передает целое число...

Однако, когда я это делаю

parseInt($('#postCode').val());

Я теряю первую цифру, если полученное значение похоже на 0880. Я хочу передать все четыре цифры, но как целое.. возможно? В принципе, я хочу убедиться, что если

parseInt($('#postCode').val()); 

имеет три цифры, которые просто добавляют один дополнительный 0 спереди.

  • 0
    Почему это не может быть строка? Вы можете иметь его в виде строки и добавить начальный 0, когда вам нужно его использовать
Теги:

3 ответа

1

Если вам нужен начальный ноль, тогда он должен быть строкой. Просто не называйте parseInt вообще. С большинством почтовых кодов, которые я видел, они представляют собой ряд цифр (или букв и цифр), но они не являются цифрами.

Если вы хотите использовать parseInt чтобы удостовериться, что это число, вы можете добавить обратно начальный ноль; но опять же, это будет строка, а не число.

Например:

var str = String(parseInt($("#postCode").val(), 10));
while (str.length < 4) {
    str = "0" + str;
}

(Обратите внимание на второй аргумент parseInt: если вы используете parseInt, вы почти всегда хотите сказать ему, какой базовый номер базы - использовать).

0

Вы очень близки к ответу. Прежде чем вы выполните parseInt, вы можете добавить чек, число или нет. Используйте [$.isNumeric()][1] чтобы проверить числовой тип, а затем, если он возвращает 3 цифры, просто добавьте 0 к вашему $("#postCode").val()

0

Будьте очень осторожны - в некоторых старых браузерах (pre ECMAScript 5) число, начинающееся с 0, интерпретируется как восьмеричное число parseInt, что почти наверняка не то, что вы хотите.

Почему вы хотите сохранить его как целое число? Я бы сказал, что почтовый индекс/почтовый код не семантически представляет число, и поэтому строка более подходит.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню