JavaScript 判断输入的值为数字

2019-06-02 13:27:49 浏览数 (1)

仅供学习,转载请注明出处

第一种方法:isNaN()

使用js自带全局函数isNaN(), isNaN()返回一个Boolean值,如下 :

代码语言:javascript复制
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript">
        ;(function(){
            var sTr = 'hello world';

            alert("sTr="   isNaN(sTr));  // 字符串输出 true

            var iNum = 1;

            alert("iNum="   isNaN(iNum));  // 数字输出false

        }())
    </script>
</head>
<body>

</body>
</html>

如果以上sTr为一个空串或是一个空格,isNaN将把c当作数字0来处理,所以检查不严谨。

第二种方法:正则表达式

代码语言:javascript复制
function checkNum(num){

    var reg=/^[0-9] .?[0-9]*$/; //判断字符串是否为数字 ,判断正整数用/^[1-9] [0-9]*]*$/

    if(!reg.test(num)){
        alert("请输入数字");
        return false;
    }else{
        alert("数字输入正确");
        return true;
    }

}

完整测试代码如下:

代码语言:javascript复制
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript">
        window.onload = function(){
            ;(function(){

                var iInput = document.getElementById('input1');
                var iBtn1 = document.getElementById('btn1');

                iBtn1.onclick = function(){

                    checkNum(input1.value);

                }

                function checkNum(num){

                    var reg=/^[0-9] .?[0-9]*$/; //判断字符串是否为数字 ,判断正整数用/^[1-9] [0-9]*]*$/

                    if(!reg.test(num)){
                        alert("请输入数字");
                        return false;
                    }else{
                        alert("数字输入正确");
                        return true;
                    }

                }


            }())
        }
        
    </script>
</head>
<body>
    <input type="text" name="" id="input1">
    <input type="button" name="" value="检查是否为整数" id="btn1">
</body>
</html>

第三种方法: 利用typeof的返回值

验证方法:如果返回的值为Number,则为数字;如果返回值为String或其它,则不是数字。如下所示:

代码语言:javascript复制
var a=123;

var b='123abc';

typeof(a) //Number

typeof(b) //String

0 人点赞