javascript 验证是否为数字方法总结
来源:自学PHP网
时间:2014-09-19 14:47 作者:
阅读:次
[导读] 验证数字我们最常用的就是直接使用 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;
}
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);
|
|