2012-10-05 30 views
8

如何解析在JavaScript中,我需要返回值作为但它返回0。
但是,当我解析001则返回1在javascript中将字符串“009”解析为整数?

var tenant_id_max = '3-009'; 
tenant_id_split = tenant_id_max.split("-"); 
var tenant_id_int = tenant_id_split[1]; 
var tenant_id_count = parseInt(tenant_id_int); 

回答

18

var tenant_id_count = parseInt(tenant_id_int, 10); 

这是因为,一个是以“0”被解析为八进制(不为“009”的工作非常出色,因此0你)如果你不不指定基数。

the MDN来自:

如果输入字符串开头为 “0”,基数是8(八进制)。这 功能是非标准的,有些实施故意不支持它(而不是使用基数10) 。由于这个原因,当使用parseInt时,总是 指定一个基数。

要记住的最重要的事情是总是指定基数

+0

,10表示?你能澄清吗? – Baskar

+0

这意味着它解析为bes 10(十进制)数字。以0开头的数字字符串会自动作为基数8进行解析 – saml