-3

可能重复:
如何解析带有前导 0 的字符串

如果我在 javascript 中 parseInt("01") 它与 parseInt("1") 不一样???

start = getStartEugene("MN01");
start2 = getStartEugene("MN1");

getStartEugene: function(spot)  //ex: GT01 GT1
{
    var yard = spot.match(/[0-9]+/);
    var yardCheck = parseInt(yard);
    if (yardCheck < 10)
       return "this"+yard;
    else
      return "this0"+yard
}

我希望将某些内容作为 this+2 数字返回,例如 this25、this55、this01、this02、this09

但我不明白。有谁知道为什么?

4

2 回答 2

3

您需要添加基数(第二个)参数以指定您使用的是基数为 10 的数字系统...

parseInt("01", 10); // 1
于 2012-10-03T15:59:23.867 回答
1

发生这种情况是因为 Javascript 将从零开始的数字解释为八进制(以 8 为基数)数字。您可以通过提供将在其中评估字符串的基础来覆盖此默认行为(正如@jondavidjohn 正确指出的那样)。

parseInt("10");  // returns 10
parseInt("010"); // returns 8
于 2012-10-03T16:35:13.223 回答