javascript如何判断一个值是否是数字?下面本篇文章就来给大家介绍一下使用javascript判断一个值是否是数字的方法,希望对大家有所帮助。
方法1:使用js自带的全局函数isNaN()
isNaN() 函数用于检查其参数是否是非数字值。如果 值x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true;如果 值x 是其他值,则返回 false。
示例:
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")); //字符串
输出:false
false
false
false
true
true
缺点:isNaN()会将 null、空格以及空串按照0来处理,所以检查不严谨。
所以用加工一下,和typeof运算符一起使用。
示例:// true:数值型的,false:非数值型
function myIsNaN(value) {
document.write((typeof value === 'number' && !isNaN(value))+"
");
}
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