JavaScript在Android的WebView中parseInt函數(shù)轉(zhuǎn)換不正確
今天被一個問題困擾,有一個頁面在瀏覽器(無論是手機還是PC)上運行良好,而通過WebView就出現(xiàn)了問題,有兩個值得計算始終出錯。于是就通過alert,把這個值顯示出來,發(fā)現(xiàn)和瀏覽器上計算的結(jié)果差了很多,本來是正數(shù),卻變成了負數(shù)。仔細比對發(fā)現(xiàn),其中一部分數(shù)字被抹掉了,這些數(shù)字都是通過parseInt由字符串轉(zhuǎn)化而來的。而被抹掉的值,和其他正常的數(shù)字唯一區(qū)別是,它們都是以0開頭的,比如“04903”,而其他值都是“90874”。如此,原因就很明顯了,WebView支持的JavaScript的.parseInt把以0開頭的字符串全部轉(zhuǎn)為了0。問題找到了解決就比較容易了,自己寫一個str2Int的方法,來代替parseInt就可以了。
復制代碼 代碼如下:
str2Int:function(str){
str = str.replace(/^0+/g, ');
if(str.length == 0){
return 0;
}
return parseInt(str);
}
【JavaScript在Android的WebView中parseInt函數(shù)轉(zhuǎn)換不正確】相關(guān)文章: