js在Android的WebView中parseInt轉換不正確解決方法

admin發表於2017-02-17
可能有人會遇到這樣的問題,一個頁面在瀏覽器(無論是手機還是PC)上執行良好,而通過WebView就出現了問題,有兩個值得計算始終出錯。於是就通過alert,把這個值顯示出來,發現和瀏覽器上計算的結果差了很多,本來是正數,卻變成了負數。比對發現,其中一部分數字被抹掉了,這些數字都是通過parseInt由字串轉化而來的。而被抹掉的值,和其他正常的數字唯一區別是,它們都是以0開頭的,比如“04903”,而其他值都是“90874”。如此,原因就很明顯,WebView支援的js的parseInt把以0開頭的字串全部轉為了0。問題找到了解決就比較容易了,於是寫一個str2Int的方法,來代替parseInt就可以了。

程式碼如下:

[JavaScript] 純文字檢視 複製程式碼
str2Int:function(str){  
  str = str.replace(/^0+/g, '');  
  if(str.length == 0){  
    return 0;  
  }  
  return parseInt(str);  
}

相關文章