Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅检查数字的验证_Javascript_Jquery - Fatal编程技术网

Javascript 仅检查数字的验证

Javascript 仅检查数字的验证,javascript,jquery,Javascript,Jquery,下面是我的一段代码,它检查输入格式是否为来自表单输入的电子邮件,并进行相应的验证。我想知道如何修改以下代码,以验证输入是否为唯一数字 if(email.length == 0 || email.indexOf('@') == '-1'){ var error = true; $('#email_error').fadeIn(500); }else{ $('#email_er

下面是我的一段代码,它检查输入格式是否为来自表单输入的电子邮件,并进行相应的验证。我想知道如何修改以下代码,以验证输入是否为唯一数字

  if(email.length == 0 || email.indexOf('@') == '-1'){
                var error = true;
                $('#email_error').fadeIn(500);
            }else{
                $('#email_error').fadeOut(500);
            }

检查将电子邮件地址转换为数字对象是否返回“非数字”值;如果不是,则输入一个数字。代码如下所示:

if(!isNaN(Number(email)) {

检查将电子邮件地址转换为数字对象是否返回“非数字”值;如果不是,则输入一个数字。代码如下所示:

if(!isNaN(Number(email)) {

使用jQuery的IsNumeric方法


使用jQuery的IsNumeric方法

编辑 如注释中所述,为了确保条目都是数字,正则表达式必须包含开始字符和结束字符,
^
$

if (email.match(/^[0-9]+$/)) {
   //it's all numbers
}
或者更简洁地说:

if (email.match(/^\d+$/)) {
   //it's all numbers
}
我不应该因为这一修正而受到赞扬,但我确实想为以后可能会发现这一点的任何人纠正它

编辑 如注释中所述,为了确保条目都是数字,正则表达式必须包含开始字符和结束字符,
^
$

if (email.match(/^[0-9]+$/)) {
   //it's all numbers
}
或者更简洁地说:

if (email.match(/^\d+$/)) {
   //it's all numbers
}
我不应该因为这一修复而得到赞扬,但我确实想为以后可能会发现这一点的任何人更正它。

我会使用:

if(isNaN(email*1)){
    //evaluated to NaN
}else{
    //evaluated to number
}
在这种情况下,
(电子邮件*1)
有可能计算为
NaN
,因此将无法通过检查,因为falsish值列表为
0,”,false,null,undefined,NaN
,我将使用:

if(isNaN(email*1)){
    //evaluated to NaN
}else{
    //evaluated to number
}



在这种情况下,
(email*1)
有可能计算为
NaN
,因此将无法通过检查,因为falsish值列表是
0,”,false,null,undefined,NaN

回答正确,但OP不需要jQuery。我知道。尽管如此,当您可以直接使用本机时,它仍然是一个额外的函数调用。我通常同意Elliot的观点,但由于已经使用了jQuery,isNumeric接近于本机;)我不喜欢混合本机方法,因为你会得到一些可怕的东西,比如
$(this).jqMethod({this.nativeMethod()})
很好的答案,但是OP不需要jQuery。我知道。尽管如此,当您可以直接使用本机时,它仍然是一个额外的函数调用。我通常同意Elliot的观点,但由于已经使用了jQuery,isNumeric接近于本机;)我不喜欢混合本机方法,因为你会得到像
$(this).jqMethod({this.nativeMethod()})
@ElliotBonneville这样可怕的东西,我没有证明它。我错了吗?如果是,我会删除。不,是的。只是有更简单的方法可以做到这一点。=)我通常喜欢避开正则表达式,除非我真的需要它。@ElliotBonneville嗯。。。这个对我来说似乎很简单,但我真正感兴趣的是为什么你认为它不是。它效率低吗?我没有任何消息来源说它的效率低于
isNan(Number(myStr)),但我有预感使用正则表达式会更慢。另外,我对正则表达式有偏见,所以我的评论中也考虑了这一点。当我做错事情的时候,我很乐意记下(并且变得更好)。但是谢谢你没有否决一个正确的答案@ElliotBonneville我没有证明。我错了吗?如果是,我会删除。不,是的。只是有更简单的方法可以做到这一点。=)我通常喜欢避开正则表达式,除非我真的需要它。@ElliotBonneville嗯。。。这个对我来说似乎很简单,但我真正感兴趣的是为什么你认为它不是。它效率低吗?我没有任何消息来源说它的效率低于
isNan(Number(myStr)),但我有预感使用正则表达式会更慢。另外,我对正则表达式有偏见,所以我的评论中也考虑了这一点。当我做错事情的时候,我很乐意记下(并且变得更好)。但是谢谢你没有否决一个正确的答案!哎呀,是的,打字错误将是我的死亡。捕捉得很好。@El事实上,你现在写了
isNan
:),所以我倾向于同意的人设法创建了一个本地测试的怪物,以查看某些文本是否是数字。请告诉我如果你只使用isNaN而不是isNaN(数字(电子邮件))@mplungjan:不确定这是否是一个问题,但请看以下答案:这在我的浏览器中不是一个问题(osx Safari5 Chrome 18,Fx 12):哇,是的,打字错误将是我的死亡。捕捉得很好。@El事实上,你现在写了
isNan
:),所以我倾向于同意的人设法创建了一个本地测试的怪物,以查看某些文本是否是数字。请告诉我,如果您只使用isNaN而不是isNaN(数字(电子邮件))@mplungjan:不确定这是否是一个问题,但请查看以下答案:这在我的浏览器中不是一个问题(osx Safari5 Chrome 18,Fx 12):这里没有输入错误。很不错的。如果(+email)
,您不能也这样做吗?小提示/随机想法:嗯,在JS中,通常有很多方法可以检查值是否是数字。你无法与
null
进行比较,因此从技术上讲,它不是一个虚假的值。@ElliotBonneville
null*1
计算为
NaN
并使
if()
checkAh失败,编辑之前你还不清楚这一点。现在我明白你在那里做了什么这看起来是最优雅的解决方案,但如果我必须在
if(email*1){//evaluate to number
-这取决于副作用,需要注释和
$。isNumeric(email)
这两者之间进行选择,我会倾向于isNumeric一个…这里没有输入错误。非常好。你不能也做
if(+email)吗
?小提示/随机想法:嗯,通常有很多方法可以检查一个值在JS中是否是一个数字。你无法与
null
进行比较,所以从技术上讲它不是一个虚假的值。@ElliotBonneville
null*1
的计算结果为
NaN
,如果()
checkAh,在编辑之前您还不清楚。现在我知道您在那里做了什么。=)这看起来是最优雅的解决方案,但是如果我必须在
if(e)之间进行选择