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>
posted @ 2022-03-31 10:13  grantgrant  阅读(211)  评论(0)    收藏  举报