Как parseInInt "09" в 9?
Как разбирать строку с ведущим 0
Ответ 1
включают в себя основание:
parseInt("09", 10);
Ответ 2
Это привело меня к гайкам - parseInt("02")
работает, но не parseInt("09")
.
Как говорили другие, решение состоит в том, чтобы указать базу 10:
parseInt("09", 10);
Хорошее объяснение этого поведения здесь
... В номерах Javascript, начиная с нулем считаются восьмеричными и там нет 08 или 09 в восьмеричном, следовательно проблема.
Ответ 3
Вы также можете сделать:
Number('09') => 9
Это возвращает целое число 9 в IE7, IE8, FF3, FF4 и Chrome 10.
Ответ 4
Переустановите существующий parseInt так, чтобы, если он вызывается с одним аргументом, в качестве второго аргумента автоматически включается "10".
(function(){
var oldParseInt = parseInt;
parseInt = function(){
if(arguments.length == 1)
{
return oldParseInt(arguments[0], 10);
}
else
{
return oldParseInt.apply(this, arguments);
}
}
})();
Ответ 5
parseInt("09", 10);
или
parseInt(parseFloat("09"));
Ответ 6
parseInt("09",10);
возвращает 9 здесь.
Это нечетно.
alert(parseInt("09")); // shows 9. (tested with Opera 10)