JavaScript 的八進位危險:parseInt 錯誤行為的解決方法
JavaScript 的parseInt 函數在遇到帶有前導零的數字時可能會出錯。這個問題源於其傾向於將前導零解釋為八進制數字,從而導致錯誤的結果。
範例:
parseInt('01'); // 1 parseInt('08'); // 0 (invalid octal digit)
解法:
最直接的解是明確提供數字的基數或基數。這可以使用 parseInt 的第二個參數來完成:
parseInt('08', 10); // 8 (specifying base 10)
或者,可以使用 Number建構子解析數字,包括那些帶有前導的數字零:
Number('08'); // 8
另一種方法是在解析字串之前將字串轉換為基數10:
parseInt(parseInt('08', 8).toString(), 10); // 8 (convert octal to base 10)
正規表示式可用來刪除前導零:
parseInt(/^0+(.*)$/gm('008')); // 8 (match and capture non-zero digits)
以上是如何避免 JavaScript 中 parseInt 的八進位解釋問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!