如何正则表达式电子邮件地址以允许3个字符域名

时间:2018-08-13 15:09:37

标签: javascript regex regex-group

我正在处理正则表达式电子邮件,并且需要验证###@###.###格式的电子邮件。下方的RFC 2822正常工作,但允许在句点之后的所有域名。我应该只允许使用3个字母的域名,例如.com,.net,.gov等。不需要过滤域名,但字符数应为3。

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

2 个答案:

答案 0 :(得分:0)

这不是您要查找的答案,但这是正确的答案-您不应尝试验证这样的电子邮件地址。

您真正应该做的唯一验证是:

  • 它是否包含@?
  • 在@之后的某处是否至少有一个句点?

原因是没有多少预验证会告诉您电子邮件地址是否真正有效。 直到您尝试发送电子邮件,您才能知道地址是否有效。尝试使用过于复杂的正则表达式以完全遵循RFC的做法在实践中收效甚微,除了在标准更改时难以维护。

因此对于现实情况:^.+?@.+?\..+$就足够了。

答案 1 :(得分:0)

已阅读您对其他答案的评论

/@.+\.[A-Za-z]{3}$/

它与任何RFC都不匹配有效的电子邮件,但是应该可以满足您的要求。

说明

  • 匹配@
  • 匹配1个或更多字符
  • 匹配.
  • 匹配3个字母字符
  • 匹配电子邮件的结尾