我有五位数的美国邮政编码来自数据库。当JavaScript看到它们时,它会将它们视为一个数字,并从前导零处消失。
如何让JavaScript将数字视为字符串,以便正确显示?
答案 0 :(得分:4)
引用它们。
在JavaScript和JSON中05123
是一个等于2643
的八进制数(感谢@Marc B),"05123"
是一个只包含数字字符的字符串。
当然,不要在数据库中引用它们。您需要在服务器端代码中生成的JavaScript或JSON中引用它们,这些代码从数据库中读取信息并将其传递给客户端代码。通常,这就像将邮政编码转换为字符串一样简单(或者,更可能的情况是,不将数字拉链转换为数字。)
答案 1 :(得分:3)
这是一个填充数字的函数,直到它长达5个字符。
function formatzip(num) {
var s = "00000"+num;
return s.substr(s.length-5);
}
但实际上邮政编码应该永远不会变成一个数字。当你设置它的值时,它应该是一个字符串。
答案 2 :(得分:1)
我确信String()
可能有效。如果到那个时候,0已经被淘汰了,你可以做类似的事情:
zip = <Source>;
zip = String(zip);
while(zip.length<5){
zip = "0" + zip;
}
告诉我这不是你想要的。
答案 3 :(得分:1)
猜测......有些天才决定将ZIP代码存储在数据库内的数字列类型中(NUMBER
,INT
或您的DBMS实现的任何类型)。如果是这种情况,所有以零开头的邮政编码都已损坏。
最好在列太晚之前将列切换到VARCHAR
并手动修复损坏的行。