我正在处理正则表达式电子邮件,并且需要验证###@###.###格式的电子邮件。下方的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])?
答案 0 :(得分:0)
这不是您要查找的答案,但这是正确的答案-您不应尝试验证这样的电子邮件地址。
您真正应该做的唯一验证是:
原因是没有多少预验证会告诉您电子邮件地址是否真正有效。 直到您尝试发送电子邮件,您才能知道地址是否有效。尝试使用过于复杂的正则表达式以完全遵循RFC的做法在实践中收效甚微,除了在标准更改时难以维护。
因此对于现实情况:^.+?@.+?\..+$
就足够了。
答案 1 :(得分:0)
已阅读您对其他答案的评论
/@.+\.[A-Za-z]{3}$/
它与任何RFC都不匹配有效的电子邮件,但是应该可以满足您的要求。
说明
@
.