如果收到的整数值是三位数,是否可以在输入前添加额外的零

时间:2014-03-20 13:59:46

标签: jquery

嗨我有一个传输整数的输入字段...

但是当我这样做时

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

如果收到的价值是0880,我将丢失第一个数字。我想传输所有四个数字,但作为一个整数..是可能的吗?基本上我想确保如果

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

是三位数,只需在前面添加一个额外的0。

3 个答案:

答案 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()