重复:Using a regular expression to validate an email address
网上似乎有很多不同的变种,并且想知道是否有明确的答案?
最好使用正则表达式的.net(正则表达式)方言。
答案 0 :(得分:6)
此问题已多次 询问和回答 :
Using a regular expression to validate an email address
Why are people using regexp for email and other complex validation?
Regexp recognition of email address hard?
与.NET特别相关:
答案 1 :(得分:1)
regular-expressions说这个匹配约99%
[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 :(得分:1)
答案 3 :(得分:1)
我认为电子邮件正则表达式验证没有灵丹妙药。
人们通常做的只是验证错误,例如缺少@和一个点。然后将电子邮件验证发送到该地址。这是确保他们的电子邮件确实有效的唯一方法。
答案 4 :(得分:0)
我前段时间遇到过同样的问题。 RFC 2822定义了它,根据this page,这个是有用的,是我选择的那个:“[a-z0-9!#$%&' + / =?^ _ { ??{1}} {|}〜 - ] +) @(?:一个-Z0-9)+(:[AZ] {2} | COM |有机|净| GOV |密耳| BIZ |信息|摩比|名称|航空|工作|博物馆)\ b“的
答案 5 :(得分:0)
[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
可能希望在所有小写版本旁边添加A-Z,以便允许使用大写字母。
答案 6 :(得分:0)
我不知道这个问题是否有一个明确的答案,但如果您实际检查该域是否存在,那么电子邮件地址会归结为<username>@<domain>
,其中<domain>
至少包含一个点和后缀中的两到四个字符。你可以做各种事情来检查非法/特殊字符,但最简单的是:
^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$