如何将“09”解析为9?
答案 0 :(得分:53)
包括基数:
parseInt("09", 10);
答案 1 :(得分:11)
这让我疯狂 - parseInt("02")
有效,但parseInt("09")
无效。
正如其他人所说,解决方案是指定基数10:
parseInt("09", 10);
对此行为here
有一个很好的解释...在Javascript编号中开始 零被认为是八进制和 因此,八进制没有08或09 问题。
答案 2 :(得分:5)
你也可以这样做:
Number('09') => 9
这将返回IE7,IE8,FF3,FF4和Chrome 10上的整数9。
答案 3 :(得分:5)
重新实现现有的parseInt,这样如果用一个参数调用它,那么“10”会自动包含在第二个参数中。
(function(){
var oldParseInt = parseInt;
parseInt = function(){
if(arguments.length == 1)
{
return oldParseInt(arguments[0], 10);
}
else
{
return oldParseInt.apply(this, arguments);
}
}
})();
答案 4 :(得分:2)
parseInt("09", 10);
或
parseInt(parseFloat("09"));
答案 5 :(得分:2)
parseInt("09",10);
在这里返回9。
很奇怪。
alert(parseInt("09")); // shows 9. (tested with Opera 10)