嗨我有一个传输整数的输入字段...
但是当我这样做时
parseInt($('#postCode').val());
如果收到的价值是0880,我将丢失第一个数字。我想传输所有四个数字,但作为一个整数..是可能的吗?基本上我想确保如果
parseInt($('#postCode').val());
是三位数,只需在前面添加一个额外的0。
答案 0 :(得分:1)
如果你想要前导零,那么它必须是一个字符串。只是不要打电话给parseInt
。对于我见过的大多数邮政编码,它们是一系列数字(或字母和数字),但它们不是数字。
如果你想使用parseInt
来确保它是一个数字,你可以加回前导零;但同样,这将是字符串,而不是数字。
E.g:
var str = String(parseInt($("#postCode").val(), 10));
while (str.length < 4) {
str = "0" + str;
}
(注意parseInt
的第二个参数;如果你使用parseInt
,你几乎总想告诉它使用什么基数 - 数字基数。)
答案 1 :(得分:0)
要非常小心 - 在一些较旧的浏览器中(在ECMAScript 5之前),以0开头的数字被parseInt
解释为八进制数,这几乎肯定不是你想要的。
为什么要将其存储为整数?我认为邮政编码/邮政编码在语义上不代表数字,因此字符串更合适。
答案 2 :(得分:0)
你非常接近答案。在执行parseInt
之前,您可以检查它是否为数字。使用[$.isNumeric()][1]
检查数字类型,如果它返回3位数,只需将0添加到$("#postCode").val()