javascript如何判断值是否是数字?

javascript如何判断一个值是否是数字?下面本篇文章就来给大家介绍一下使用javascript判断一个值是否是数字的方法,希望对大家有所帮助。

方法1:使用js自带的全局函数isNaN()

isNaN() 函数用于检查其参数是否是非数字值。如果 值x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true;如果 值x 是其他值,则返回 false。

示例:

<script>
document.write(isNaN(123));  //数字
document.write(isNaN(-1.23));  //数字
document.write(isNaN(5-2));  //数字
document.write(isNaN(0));  //数字
document.write(isNaN("Hello"));  //字符串
document.write(isNaN("2005/12/12"));  //字符串
</script>

输出:

false
false
false
false
true
true

缺点:isNaN()会将 null、空格以及空串按照0来处理,所以检查不严谨。

所以用加工一下,和typeof运算符一起使用。

示例:

// true:数值型的,false:非数值型
function myIsNaN(value) {
   document.write((typeof value === 'number' && !isNaN(value))+"<br>");
}
myIsNaN(10); 
myIsNaN(null); 
myIsNaN( );
myIsNaN();

输出:

true
false
false
false

方法2:使用正则表达式

/**
* 校验只要是数字(包含正负整数,0以及正负浮点数)就返回true
**/
function isNumber(val){
    var regPos = /^\d+(\.\d+)?$/; //非负浮点数
    //负浮点数
    var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)
                            |([0-9]*[1-9][0-9]*)))$/; 
    if(regPos.test(val)||regNeg.test(val)){
        return true;
    }else{
        return false;
    }
}
isNumber(10);
isNumber(-10);
isNumber("hh");

输出:

true
true
false

以上就是javascript如何判断值是否是数字?的详细内容,更多请关注易知道|edz.cc其它相关文章!

推荐阅读