2

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

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

我想允许用户输入的电子邮件地址使用撇号('),上面的正则表达式会有什么修改?

4

3 回答 3

1

试试这个:

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

它将允许在“@”之前的任何地方使用撇号

于 2013-05-03T15:01:28.177 回答
1

您当前的正则表达式与以下电子邮件地址匹配:

  • test@provider.com
  • test-user@provider.com

但不符合这个:

  • 测试用户名@provider.com

如果您只是想验证一个包含一个撇号的电子邮件地址,如下所示:

  • test'username@provider.com

然后只需在第一个括号中添加一个 quoi :

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

但它仍然无法匹配很多电子邮件地址(一个带有破折号和撇号,一个带有多个破折号 [...])。

于 2013-05-03T15:04:06.187 回答
0

使用正则表达式可能是最好的方法。这是一个示例(演示):

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);
} 
于 2013-05-03T15:58:58.080 回答