8

如何在 javascript中解析009我需要返回值为9但它返回 0。
但是当我解析001 时它返回 1

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);
4

1 回答 1

18

var tenant_id_count = parseInt(tenant_id_int, 10);

这是因为如果您不指定基数,则以“0”开头的字符串将被解析为八进制(这对于“009”来说效果不佳,因此您会得到 0)。

来自MDN

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

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

于 2012-10-05T16:43:49.577 回答