[英]Validating text input as a number - JavaScript
我正在尝试验证用户输入,以确保他们输入的内容(如果有的话-不需要字段)是一个数字。 现在我不在乎这个数字是多少,但它必须是整数。 消极的,积极的,无论以后如何验证。 到目前为止,这是我的测试样本:
var a=["",0,"0",-2,"-2",2,"2",-2.2,"-2.2",2.2,"2.2",-1,"-1",undefined,null,NaN,Infinity,-Infinity],x;
for(x=0;x<a.length;x++){
console.log(a[x],(isNaN(+a[x]) || Math.round(+a[x]) != +a[x] || +a[x] === null || +a[x]+1==+a[x])?false:true);
}
如果您在控制台中运行该命令,则它对将通过验证的任何元素显示为true,否则为false。 此验证在Chrome中符合我的预期(所有小数点都显示为false
,从未undefined
所有内容开始显示。
我的问题是,此功能是否可以在所有主流浏览器(包括IE 6+)中使用,并且我是否已针对所有可能的输入进行了全面检查?
注意:
+
在a[x]
前面用于类型转换(以及修剪字符串- " 2 "
转换为2
。
最后一个检查+a[x]+1===+a[x]
是检查(+/-)Infinity
。
谢谢 :) 。
试试这个功能
function is_int(value){
if((parseFloat(value) == parseInt(value)) && !isNaN(value)){
alert("Is an Integer");
} else {
alert("Is not an Integer");
}
}
is_int(1); //Output - Is an Integer
is_int("a"); //Output - Is not an Integer
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.