如何将Int“09”解析为9?
如何解析一个以 0 开头的字符串
IT技术
javascript
string
parseint
2021-01-27 03:21:03
6个回答
包括基数:
parseInt("09", 10);
这一直让我发疯 -parseInt("02")有效但不是parseInt("09")。
正如其他人所说,解决方案是指定基数 10:
parseInt("09", 10);
这种行为在这里有一个很好的解释
...在 Javascript 中,从零开始的数字被认为是八进制的,八进制中没有 08 或 09,因此存在问题。
你也可以这样做:
Number('09') => 9
这将在 IE7、IE8、FF3、FF4 和 Chrome 10 上返回整数 9。
重新实现现有的 parseInt,这样如果用一个参数调用它,那么“10”将自动作为第二个参数包含在内。
(function(){
var oldParseInt = parseInt;
parseInt = function(){
if(arguments.length == 1)
{
return oldParseInt(arguments[0], 10);
}
else
{
return oldParseInt.apply(this, arguments);
}
}
})();
parseInt("09",10);
在这里返回 9。
这很奇怪。
alert(parseInt("09")); // shows 9. (tested with Opera 10)