Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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
使用正则表达式进行JQuery/javascript电子邮件验证_Javascript_Jquery_Regex_Validation_Email - Fatal编程技术网

使用正则表达式进行JQuery/javascript电子邮件验证

使用正则表达式进行JQuery/javascript电子邮件验证,javascript,jquery,regex,validation,email,Javascript,Jquery,Regex,Validation,Email,我一直在搜索一个好的正则表达式来进行电子邮件验证,但是对于我找到的大多数正则表达式,我看到人们评论说正则表达式过时了,或者不起作用。。。所以我希望有人能帮我一个电子邮件验证正则表达式,目前是有效的所有电子邮件 到目前为止,我所知道的是:我看到有人说,emailReg2已经过时并产生误报,但我没有看到任何关于emailReg1已经过时的信息 var emailReg1 = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,6})?$/; var emailReg2 = /^([a-zA

我一直在搜索一个好的正则表达式来进行电子邮件验证,但是对于我找到的大多数正则表达式,我看到人们评论说正则表达式过时了,或者不起作用。。。所以我希望有人能帮我一个电子邮件验证正则表达式,目前是有效的所有电子邮件

到目前为止,我所知道的是:我看到有人说,
emailReg2
已经过时并产生误报,但我没有看到任何关于
emailReg1
已经过时的信息

var emailReg1 = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,6})?$/;
var emailReg2 = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;

function IsEmail(email) {
  var regex = //which regex do I put here?
  return regex.test(email);
}
如有任何澄清,我们将不胜感激。谢谢

功能验证电子邮件(电子邮件){
function validateEmail(email) {
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return re.test(email);
}
变量re=/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*)(\'+\”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.[0-9]{1,3}.]; 返回重新测试(电子邮件); }
我用于电子邮件验证的正则表达式是

^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$
SO上有许多正则表达式问题用于最佳电子邮件验证


从我的大部分研究中,你会发现很多正则表达式可以验证大多数电子邮件地址,但我从未找到一个可以捕获所有电子邮件的正则表达式。你必须找到最适合你的需要。

对于验证电子邮件地址的正则表达式,你应该看看你的需要,确定你确实需要复杂的还是非常简单的东西

对于一个简单的(且不规范的)正则表达式:

深入:

.+?   # At least 1 or more character, non-greedy; matches everything before the @ sign
@     # literal @
.+?   # Same as above; matches everything before the .
\.    # literal .
.+    # match everything after
这不适用于像appname.appspotmail.com这样的域,因为它有多个句号,但应该适合您的需要

您可以修改上述正则表达式以接受此类条件。如前所述,这完全取决于你的需要。电子邮件验证没有更好或更差的正则表达式;只有一个正则表达式完全满足您的需求,而另一个正则表达式则不必要地冗长

如果可能的话,你应该拿出你自己的正则表达式,而不是使用其他正则表达式,因为你是唯一知道你自己需要的人

如果您必须使用符合RFC的东西,请查看这个极其详细的正则表达式:然而,我不鼓励您使用该正则表达式,而是寻找一个验证电子邮件地址的库。不过,您可能不需要遵守RFC


如果您需要调试正则表达式的资源,请尝试。

@PedroLobito我有。。。有人编辑了这个问题,说我没有搜索。。。这实际上有点令人沮丧。。。我记得我在开始的时候特别说过,
我已经搜索了一段时间了……
我把你的问题退回了,它仍然没有解释为什么这个问题不像你的@PedroLobito,这是一个5年前的问题,答案中的第一条评论是:
这个正则表达式消除了有效的、正在使用的电子邮件。不要使用。谷歌搜索“RFC822”或“RFC2822”以获得正确的正则表达式。
答案同样有效。更不用说电子邮件地址并没有太大变化。@Adjit还请注意“bogus@nonexistant.com“是一个有效的电子邮件地址。因此,我可以制作一个更复杂的正则表达式。。。如果第一次失败,请尝试另一个正则表达式来检查多个全站?因此,下一个正则表达式类似于
+?@.+?\…+?。++
您将使用闭包。学习正则表达式指南;是国际海事组织最好的
.+?   # At least 1 or more character, non-greedy; matches everything before the @ sign
@     # literal @
.+?   # Same as above; matches everything before the .
\.    # literal .
.+    # match everything after