Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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_Regex - Fatal编程技术网

使用javascript验证电子邮件地址

使用javascript验证电子邮件地址,javascript,regex,Javascript,Regex,下面是我在用户单击提交按钮时用来验证电子邮件地址的代码 /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(EmailID); 我想在用户输入的电子邮件地址中使用撇号('),对上述正则表达式的修改是什么?尝试以下操作: /^(\w|')+([\.-]?(\w|')+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/ 它将允许在“@”之前的任何地方使用撇号,您当前的正则表达式与以下电子邮件地址匹配: test@provide

下面是我在用户单击提交按钮时用来验证电子邮件地址的代码

/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(EmailID);
我想在用户输入的电子邮件地址中使用撇号('),对上述正则表达式的修改是什么?

尝试以下操作:

/^(\w|')+([\.-]?(\w|')+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/

它将允许在“@”之前的任何地方使用撇号,您当前的正则表达式与以下电子邮件地址匹配:

  • test@provider.com
  • 试验-user@provider.com
但与此不匹配:

  • 测试用户-name@provider.com
如果您只是想验证包含一个撇号的电子邮件地址,如下图所示:

  • 测试'username@provider.com
然后在第一个括号中添加一个quoi:

/^\w+(['.-]?\w+)@\w+([.-]?\w+)(.\w{2,3})+$/

但是它仍然不能匹配很多电子邮件地址(一个带破折号和撇号,一个带多个破折号[…])。

使用正则表达式可能是最好的方法。这里有一个例子

函数validateEmailAddress(emailID){
var emailRgx=/^(([^()[\]\\,;:\s@\“]+(\.[^()[\]\\,;:\s@\“]+)*)|(\
“+\”)@(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.]
-Z \-0-9]+\)+[a-zA-Z]{2,}))$/;
返回emailRgx.test(emailID);
} 

如果没有,那就是不完美。换句话说,很难验证所有不同的有效电子邮件地址。验证电子邮件地址的最佳方法是尝试。只要它有一个@符号,它就可以是一个电子邮件地址。这里提供的正则表达式与Rick Visconni推荐的正则表达式之间肯定存在巨大的差距。您的正则表达式在几个方面都有问题。我建议使用验证器-电子邮件地址语法的可能重复项是不可能的复杂,并且这个库解释了这一点。为什么您认为“那个测试用户?”-name@provider.com“不相配吗?如果你试试正则表达式,你会发现它会的。([\.-]?\w+)捕获组有一个星形,因此可以根据需要重复多次。不过,它与此不符:“测试用户-@provider.com”@hhamilton他实际上编辑了正则表达式,一开始是另外一回事
function validateEmailAddress(emailID) { 
    var emailRgx = /^(([^<>()[\]\\.,;:\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 emailRgx .test(emailID);
}