javascript 验证是否为数字方法总结
验证数字我们最常用的就是直接使用 isNaN函数来验证了,当然除了这个还有其它方法,就是正则表达式了,下面我来给大家介绍js 验证是否为数字方法总结吧。
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;
- } //xiaohuboke.com
- 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('不是数值')};">
常用用的正则数字表达式.
“^\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);