这是我用来在用户单击提交按钮时验证电子邮件地址的代码,
/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(EmailID);
我想允许用户输入的电子邮件地址使用撇号('),上面的正则表达式会有什么修改?
这是我用来在用户单击提交按钮时验证电子邮件地址的代码,
/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(EmailID);
我想允许用户输入的电子邮件地址使用撇号('),上面的正则表达式会有什么修改?
试试这个:
/^(\w|')+([\.-]?(\w|')+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/
它将允许在“@”之前的任何地方使用撇号
您当前的正则表达式与以下电子邮件地址匹配:
但不符合这个:
如果您只是想验证一个包含一个撇号的电子邮件地址,如下所示:
然后只需在第一个括号中添加一个 quoi :
/^\w+(['.-]?\w+)@\w+([.-]?\w+)(.\w{2,3})+$/
但它仍然无法匹配很多电子邮件地址(一个带有破折号和撇号,一个带有多个破折号 [...])。
使用正则表达式可能是最好的方法。这是一个示例(演示):
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);
}