使用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
/^\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);
}