2012-08-02 5 views
15

Eventuali duplicati:
Workarounds for JavaScript parseInt octal bugperché parseInt ('08 ') sta dando 0, mentre parseInt ('07') sta dando 7

Sto lavorando su javascript, e ho sembra strano, che la funzione javascript parseInt ('08 ') restituisca 0 e parseInt ('07') restituisca 7.

questo comportamento sembra essere presente in Firefox.

parseInt ('08') sta tornando 8 in IE, ma 0 in Firefox ..

Perché? Voglio parseInt ('08 ') per restituire 8, come previsto e ottenere in IE.

risposta

32

Sì, mi sono imbattuto in questo prima. E 'davvero strano perché alcuni browser interpretano questo come si vogliono analizzare in base 8. Si consideri il seguente articolo:

http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256C85006A6604

fondamentalmente, si deve dire al parser da usare base di 10 numeri:

parseInt('08', '10'); 
+3

'parseInt ('08 ',' 10 ');'? Veramente? Solitamente faremo '+" 08 "', poiché l'aggiunta di '+' davanti a una stringa lo trasformerà in Numero senza alcun problema. –

+1

anche gli hack – AceCorban

+0

@Derik Post hoc ergo propter hoc – lededje