29

如何将 Int "09" 解析为 9 ?

4

6 回答 6

55

包括基数:

parseInt("09", 10);
于 2009-10-09T17:49:19.567 回答
11

这一直让我发疯 -parseInt("02")工作但不是parseInt("09")

正如其他人所说,解决方案是指定基数 10:

parseInt("09", 10);

这里有一个很好的解释这种行为

...在 Javascript 中,从零开始的数字被认为是八进制,八进制中没有 08 或 09,因此存在问题。

于 2011-06-08T15:50:30.587 回答
5

你也可以这样做:

Number('09') => 9

这将在 IE7、IE8、FF3、FF4 和 Chrome 10 上返回整数 9。

于 2011-01-17T22:24:27.050 回答
5

重新实现现有的 parseInt 以便如果使用一个参数调用它,那么“10”会自动包含在第二个参数中。

(function(){
  var oldParseInt = parseInt;
  parseInt = function(){
    if(arguments.length == 1)
    {
      return oldParseInt(arguments[0], 10);    
    }
    else
    {
      return oldParseInt.apply(this, arguments);
    }
  }
})();
于 2012-10-23T19:34:20.380 回答
2
parseInt("09", 10);

或者

parseInt(parseFloat("09"));
于 2009-10-09T17:50:29.717 回答
2
parseInt("09",10);

在这里返回 9。

这很奇怪。

alert(parseInt("09")); // shows 9. (tested with Opera 10)
于 2009-10-09T17:54:49.807 回答