
方法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其它相关文章!













