parseInt 函式可以把數字+字母識別成數字
阿新 • • 發佈:2022-03-31
在用正則表示式判斷是否輸入的數值為數字時, 發現數字+字母的組合比如12a, 都被識別為數字.
試了各種方法, 最後發現原來是在開始時, 先使用了parseInt把輸入的數值處理了一下, 這樣12a, 就變成了12, 所以出問題了.
去掉parseInt,問題就解決了, 以下是parseInt的測試過程:
<!DOCTYPE html> <html lang="en">
<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head>
<body> <script> var arr = ['abc', '123', 'a12', '1ab', 'ab1', '12a', 'a12', '1a2', '12.a'];
var result = [];
arr.forEach(function (val) {
result.push({
val: val,
result: parseInt(val)
});
});
console.table(result);
// 執行結果: // (索引) val result // 0 'abc' NaN // 1 '123' 123 // 2 'a12' NaN // 3 '1ab' 1 // 4 'ab1' NaN // 5 '12a' 12 // 6 'a12' NaN // 7 '1a2' 1 // 8 '12.a' 12 </script> </body>
</html>