我尝试创建一个正则表达式来捕获所有RFC 有效地址,但如果出现一些误报也没关系(尽管希望不会太多)。到目前为止,这是我想出的:
/^\b\S+@\S+\.[^\s@]{2,}\b$/
是否有任何与此表达式不匹配的 RFC 有效地址,或者您有任何改进它的建议?我不介意误报,但如果你也给我看一些,我会很高兴。
我尝试创建一个正则表达式来捕获所有RFC 有效地址,但如果出现一些误报也没关系(尽管希望不会太多)。到目前为止,这是我想出的:
/^\b\S+@\S+\.[^\s@]{2,}\b$/
是否有任何与此表达式不匹配的 RFC 有效地址,或者您有任何改进它的建议?我不介意误报,但如果你也给我看一些,我会很高兴。
"foo bar"@example.com
本地部分可以包含空格(它们必须被引用,但它们是有效的)。
电子邮件地址可能包含嵌套注释,这会破坏大多数正则表达式方法。这是一个有效的电子邮件地址:
test(Oh (noes, an @) "sign")@(Here comes the domain)domain.com(TLD is com!!)
即使没有注释,本地部分也可能包含带引号的字符串,其中可能包含空格。我发现的最佳方法是:寻找一个@
. 那是强制性的。所以我会用
/.+@.+/
name@[1.2.3.4]
不匹配但有效。可以在此处找到用于测试的有效/无效邮件地址列表。
尝试 regexbuddy 来验证正则表达式。我经常使用的另一个方便的网站是regexplib