JavaScript -邮政编码被转换成一个数字

JavaScript - Zip Code gets converted to a number

本文关键字:一个 数字 邮政编码 转换 JavaScript      更新时间:2023-09-26

我有五位数的美国邮政编码来自数据库。当JavaScript看到它们时,它将它们视为数字并去掉前导零。

我如何让JavaScript处理数字作为一个字符串,使他们正确显示?

引用它们

在JavaScript和JSON 05123是一个八进制数字等于2643(感谢@Marc B)和"05123"是一个字符串只包含数字字符。

当然,不要在数据库中引用它们。您需要在从数据库读取信息并将其传递给客户端代码的服务器端代码中生成的JavaScript或JSON中引用它们。通常,这就像将邮政编码转换为字符串一样简单(或者,更可能的情况是,而不是将数字zip转换为数字)

这个函数填充一个数字直到它的长度为5个字符。

function formatzip(num) {
    var s = "00000"+num;
    return s.substr(s.length-5);
}

但实际上邮政编码一开始就不应该变成数字。当你设置它的值以。

开头时,它应该是一个字符串。

我肯定String()可能会工作。如果到那时,0已经被去掉了,您可以这样做:

zip = <Source>;
zip = String(zip);
while(zip.length<5){
  zip = "0" + zip;
}

如果这不是你想要的,请告诉我

猜测…一些天才决定在数据库中以数字列类型存储邮政编码(NUMBERINT或DBMS实现的任何类型)。如果是这种情况,那么所有以0开头的邮政编码都已经损坏了。

最好在为时已晚之前将列切换到VARCHAR并手动修复损坏的行。