使用javascript验证电子邮件地址

时间:2013-05-03 14:58:12

标签: javascript regex

这是我用来点击用户点击提交按钮的电子邮件地址的代码,

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

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

3 个答案:

答案 0 :(得分:1)

试试这个:

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

它会在'@'

之前的任何地方允许撇号

答案 1 :(得分:1)

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

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

但是不符合这个:

  • test-user-name@provider.com

如果您只是在尝试验证包含一个撇号的电子邮件地址,请执行以下操作:

  • test'username@provider.com

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

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

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

答案 2 :(得分:0)

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

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);
}