parseInt 函数可以把数字+字母识别成数字
在用正则表达式判断是否输入的数值为数字时, 发现数字+字母的组合比如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>

浙公网安备 33010602011771号