这些电子邮件规则的Javascript RegEx

时间:2011-01-14 08:23:39

标签: javascript jquery regex

我对正则表达式很糟糕,需要对字段进行客户端验证。

根据这些规则测试有效电子邮件地址的正则表达式是什么:

电子邮件地址必须具有以下属性:

  1. 一个@符号。
  2. 至少一个时期(连续两个)。
  3. @和第一个句点之间至少有一个字符。
  4. 最后一段时间后至少有一个角色。
  5. 提前致谢。

    -Seth

2 个答案:

答案 0 :(得分:4)

如果你想使用正则表达式,至少要做正确的事:

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

这个正则表达式取自this article,你绝对应该完整阅读。

答案 1 :(得分:1)

function validateEmail(elementValue){  
   var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{1,4}$/;  
   return emailPattern.test(elementValue);  
}  

取自article。如你所知,它只接受@后的一个点。

@edit:根据another article,更标准的符合变体是:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])

它的权衡在文章中也有解释。值得阅读!