您好,欢迎访问一九零五行业门户网

javascript怎么判断是否数字

javascript判断是否为数字的方法:1、使用isnan()函数,语法格式“isnan(value)”,可以检查其参数value是否为非数字值;2、使用test()函数配合正则表达式来判断;3、利用parsefloat()函数来判断。
本教程操作环境:windows7系统、javascript1.8.5版、dell g3电脑。
1.使用isnan()函数
isnan()的缺点就在于 null、空格以及空串会被按照0来处理
nan: not a number
/***判断是否是数字***/function isrealnum(val){ // isnan()函数 把空串 空格 以及null 按照0来处理 所以先去除, if(val === "" || val ==null){ return false;} if(!isnan(val)){//对于空数组和只有一个数值成员的数组或全是数字组成的字符串,isnan返回false,例如:'123'、[]、[2]、['123'],isnan返回false, //所以如果不需要val包含这些特殊情况,则这个判断改写为if(!isnan(val) && typeof val === 'number' )  return true; } else{ return false; } }
isnan()函数来判断一个值是数字的最正确的方法就是:
// true:数值型的,false:非数值型 function myisnan(value) { return typeof value === 'number' && !isnan(value); }
isnan()详解
对于空数组和只有一个数值成员的数组,isnan返回false。
isnan([]) // falseisnan([123]) // falseisnan(['123']) // false
上面代码之所以返回false,原因是这些数组能被number函数转成数值,请参见《数据类型转换》一章。
因此,使用isnan之前,最好判断一下数据类型。
function myisnan(value) { return typeof value === 'number' && !isnan(value);}
2.使用正则表达式 
(1)、校验只要是数字(包含正负整数,0以及正负浮点数)就返回true
/*** 校验只要是数字(包含正负整数,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; }}
(2)、校验正负正数就返回true
/*** 校验正负正数就返回true**/function isintnum(val){ var regpos = / ^\d+$/; // 非负整数 var regneg = /^\-[1-9][0-9]*$/; // 负整数 if(regpos.test(val) && regneg.test(val)){ return true; }else{ return false; } }
常用正则:
"^\\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$"  //正整数 "^((-\\d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?\\d+$" //整数 "^\\d+(" //非负浮点数(正浮点数 + 0) "^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"//正浮点数 "^((-\\d+(" //非正浮点数(负浮点数 + 0) "^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮点数 "^(-?\\d+)(" //浮点数
3.使用parsefloat()函数
/*** 验证数据 是数字:返回true;不是数字:返回false**/function number(val) {if (parsefloat(val).tostring() == "nan") {return false;} else {return true;}}//isnan(val)不能判断空串或一个空格//如果是一个空串、空格或null,而isnan是做为数字0进行处理的,而parseint与parsefloat是返回一个错误消息,这个isnan检查不严密而导致的。
更多编程相关知识,请访问:编程视频!!
以上就是javascript怎么判断是否数字的详细内容。
其它类似信息

推荐信息