isNaN 函数
isNaN(expression:Object) : Boolean
计算参数,如果值为 NaN(非数字),则返回 true。此函数可用于检查一个数学表达式是否成功地计算为一个数字。
isNaN函数 如下:
代码如下 | 复制代码 |
function checknum(str) { if (isNaN(str)) { alert("不是数字"); } } |
另外再看
代码如下 | 复制代码 |
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 |
另外,可用正则表达式,最完整最精确的方法:
代码如下 | 复制代码 |
function isNumber(oNum) { if(!oNum) return false; var strP=/^d+(.d+)?$/; if(!strP.test(oNum)) return false; try{ if(parseFloat(oNum)!=oNum) return false; } catch(ex) { return false; } return true; } |
这段javascript代码很简洁,大家可以看下。
代码如下 | 复制代码 |
<script language=javascript> function onlyNum() { if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105))) //考虑小键盘上的数字键 event.returnvalue=false; } </script> <input onkeydown="onlyNum();"> |
下面还有一种比较笨的方法,大家也可以看下,学习嘛
下次贴个用正则验证数字的
代码如下 | 复制代码 |
<script language="javascript"> function CheckMyForm() { var txt = myform.mytext.value; if(checknumber(txt)) { alert("只允许输入数字!"); return false; } return true; } function checknumber(String) { var Letters = "1234567890"; var i; var c; for( i = 0; i < String.length; i ++ ) { c = String.charAt( i ); if (Letters.indexOf( c ) ==-1) { return true; } } return false; } </script> <body> <form name="myform" onSubmit="return CheckMyForm()"> <input type="text" name="mytext"> <input type="submit" name="mysubmit"> </form> </body> |
最简单的javascript验证是否不是数字的代码如下:
代码如下 | 复制代码 |
<input type='TEXT' onKeyPress="if(event.keyCode==13){if(isNaN(this.value))alert('不是数值')};"> |
常用用的正则数字表达式
1)
代码如下 | 复制代码 |
“^\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+)(” //浮点数 |
2)
代码如下 | 复制代码 |
var r = /^+?[1-9][0-9]*$/; //正整数 r.test(str); |
时间: 2025-01-07 16:46:28