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本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!