A-A+

javascript 验证是否为数字方法总结

2016年10月16日 web前端设计 暂无评论 阅读 6 views 次

验证数字我们最常用的就是直接使用 isNaN函数来验证了,当然除了这个还有其它方法,就是正则表达式了,下面我来给大家介绍js 验证是否为数字方法总结吧。

isNaN 函数:

isNaN(expression:Object):Boolean

计算参数,如果值为 NaN(非数字),则返回 true。此函数可用于检查一个数学表达式是否成功地计算为一个数字。

isNaN函数,代码如下:

  1. function checknum(str) {  
  2.  if (isNaN(str)) {  
  3.   alert("不是数字");  
  4.  }  
  5. }  

另外再看如下代码:

parseInt("Hello",10);//return NAN

parseInt("110",10);//return 110

所以简单的判断字符串是否为数字的方法就是利用isNaN(),如果返回true,则该字符串不为数字,否则为数字,代码如下:

isNaN(parseInt("Hello",10));//true;

isNaN(parseInt("110",10));//false;

注:不能利用以下方式判断,代码如下:

parseInt("Hello",10)==NaN;//return false

parseInt("110",10)==NaN;//return false

另外,可用正则表达式,最完整最精确的方法,代码如下:

  1. function isNumber(oNum)   
  2.    {   
  3.   if(!oNum) return false;   
  4.   var strP=/^d+(.d+)?$/;   
  5.   if(!strP.test(oNum)) return false;   
  6.   try{   
  7.   if(parseFloat(oNum)!=oNum) return false;   
  8.   } //xiariboke.com  
  9.   catch(ex)   
  10.   {   
  11.    return false;   
  12.   }   
  13.   return true;   
  14.    }  

这段javascript代码很简洁,大家可以看下,代码如下:

  1. <script language=javascript>  
  2. function onlyNum()  
  3. {  
  4. if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))  
  5. //考虑小键盘上的数字键  
  6. event.returnvalue=false;  
  7. }  
  8. </script>  
  9. <input onkeydown="onlyNum();">  

下面还有一种比较笨的方法,大家也可以看下,学习嘛,下次贴个用正则验证数字的,代码如下:

  1. <script language="javascript">   
  2. function CheckMyForm()   
  3. {   
  4. var txt = myform.mytext.value;   
  5. if(checknumber(txt))   
  6. {   
  7. alert("只允许输入数字!");   
  8. return false;   
  9. }   
  10. return true;   
  11. }   
  12. function checknumber(String)   
  13. {   
  14. var Letters = "1234567890";   
  15. var i;   
  16. var c;   
  17. for( i = 0; i < String.length; i ++ )   
  18. {   
  19. c = String.charAt( i );   
  20. if (Letters.indexOf( c ) ==-1)   
  21. {   
  22. return true;   
  23. }   
  24. }   
  25. return false;   
  26. }   
  27. </script>   
  28. <body>   
  29. <form name="myform" onSubmit="return CheckMyForm()">   
  30. <input type="text" name="mytext">   
  31. <input type="submit" name="mysubmit">   
  32. </form>   
  33. </body>  

最简单的javascript验证是否不是数字的代码如下:

  1. <input type='TEXT' onKeyPress="if(event.keyCode==13){if(isNaN(this.value))alert('不是数值')};">  

常用用的正则数字表达式.

“^\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+)(” //浮点数

var r = /^+?[1-9][0-9]*$/; //正整数

r.test(str);

标签:

给我留言