Как разобрать строку с ведущим 0 - PullRequest
27 голосов
/ 09 октября 2009

Как разобрать "09" в 9?

Ответы [ 6 ]

53 голосов
/ 09 октября 2009

включают основание:

parseInt("09", 10);
11 голосов
/ 08 июня 2011

Это сводит меня с ума - parseInt("02") работает, но не parseInt("09").

Как уже говорили другие, решение состоит в том, чтобы указать основание 10:

parseInt("09", 10);

Вот хорошее объяснение этому поведению здесь

... Начиная с номера Javascript с нуля считаются восьмеричными и нет восьмерки 08 или 09, следовательно проблема.

5 голосов
/ 23 октября 2012

Повторно реализовать существующий parseInt, чтобы при его вызове с одним аргументом «10» автоматически включался в качестве второго аргумента.

(function(){
  var oldParseInt = parseInt;
  parseInt = function(){
    if(arguments.length == 1)
    {
      return oldParseInt(arguments[0], 10);    
    }
    else
    {
      return oldParseInt.apply(this, arguments);
    }
  }
})();
5 голосов
/ 18 января 2011

Вы также можете сделать:

Number('09') => 9

Возвращает целое число 9 в IE7, IE8, FF3, FF4 и Chrome 10.

2 голосов
/ 09 октября 2009
parseInt("09",10);

возвращает 9 здесь.

Странно.

alert(parseInt("09")); // shows 9. (tested with Opera 10)
2 голосов
/ 09 октября 2009
parseInt("09", 10);

или

parseInt(parseFloat("09"));
...