【发布时间】:2010-12-05 10:25:44
【问题描述】:
如何将Int "09" 解析成9?
【问题讨论】:
标签: javascript string parseint
如何将Int "09" 解析成9?
【问题讨论】:
标签: javascript string parseint
包括基数:
parseInt("09", 10);
【讨论】:
parseInt("09", 10);
或
parseInt(parseFloat("09"));
【讨论】:
parseInt("09",10);
在这里返回 9。
这很奇怪。
alert(parseInt("09")); // shows 9. (tested with Opera 10)
【讨论】:
parseInt('08') 视为 base 10。
你也可以这样做:
Number('09') => 9
这会在 IE7、IE8、FF3、FF4 和 Chrome 10 上返回整数 9。
【讨论】:
这让我发疯了 -parseInt("02") 有效,但 parseInt("09") 无效。
正如其他人所说,解决方案是指定基数 10:
parseInt("09", 10);
这种行为有一个很好的解释here
... 以 Javascript 数字开头 零被认为是八进制和 八进制中没有 08 或 09,因此 问题。
【讨论】:
重新实现现有的 parseInt,这样如果用一个参数调用它,那么“10”会自动包含在第二个参数中。
(function(){
var oldParseInt = parseInt;
parseInt = function(){
if(arguments.length == 1)
{
return oldParseInt(arguments[0], 10);
}
else
{
return oldParseInt.apply(this, arguments);
}
}
})();
【讨论】: