介绍
使用JavaScript怎么判断一个对象是否为数字?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
操作环境:windows7多系统,javascript1.8.5版,戴尔G3电脑。
<强>方法1:使用isNaN()函数强>
isNaN()函数是js自带的全局函数,isNaN()函数用于检查其参数是否是非数字值。
如果值x是特殊的非数字值南(或者能被转换为这样的值),返回的值就是真的,如果值x是其他值,则返回错误的。
isNaN()的缺点就在于空,空格以及空串会被按照0来处理
南:Not a 数字 & lt; 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"));,,//字符串 & lt;/script>
输出:
假 假 假 假 真正的 真正的
缺点:isNaN()会将空,空格以及空串按照0来处理,所以检查不严谨。
所以用加工一下,和typeof运算符一起使用。
示例:
//,真的:数值型的,错误的:非数值型 function myIsNaN(值),{ ,,document . write (typeof value ===, & # 39;数字# 39;,,,,! isNaN(值))+“& lt; br>“); } myIsNaN (10),, myIsNaN (null),, myIsNaN (,); myIsNaN ();
输出:
正确的 假 假 假
<>强方法2:使用正则表达式强>
(1),校验只要是数字(包含正负整数,0以及正负浮点数)就返回真正的
/* * *,校验只要是数字(包含正负整数,0以及正负浮点数)就返回现实 * */function isNumber (val) { ,,,var regPos =,/^[0 - 9] +。?[0 - 9] */,,//判断是否是数字。 ,, ,,,如果(regPos.test (val),) { ,,,,,,,return 真实; 还有,,,}{ ,,,,,,,return 假; ,,,} }
(2)、校验正负正数就返回真正的
/* * *,校验正负正数就返回现实 * */function isIntNum (val) { ,,,var regPos =,,/^ \ d +/美元;,//,非负整数, ,,,var regNeg =,/^ \[1 - 9][0 - 9] * $/;,//,负整数 ,,,如果(regPos.test (val),,,, regNeg.test (val)) { ,,,,,,,return 真实; 还有,,,}{ ,,,,,,,return 假; ,,,}, }
<>强方法3:利用parseFloat()的返回值强>
parseFloat()函数可解析一个字符串,并返回一个浮点数。
该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。
用法:将参数中指定的字符串解析成为一个浮点数字并返回。
/* * *,验证数据,是数字:返回正确的;不是数字:返回错误的 * */function 号码(val), { if (parseFloat (val) .toString (),==,“NaN"), { return 假; },{else return 真实; } }//isNaN (val)不能判断空串或一个空格//如果是一个空串,空格或null,而isNaN是做为数字0进行处理的,//而方法与parseFloat是返回一个错误消息,这个isNaN检查不严密而导致的。
看完上述内容,你们掌握使用JavaScript怎么判断一个对象是否为数字的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!