非公开电子邮件地址验证

时间:2012-11-12 02:53:38

标签: asp.net regex email

我想只允许有效和非公开电子邮件地址的电子邮件地址,例如gmail,yahoo,hotmail等。

任何人都可以帮我检查吗?我猜我需要使用正则表达式,但不确定是否有更简单的方法

1 个答案:

答案 0 :(得分:1)

如果您只需要在顶级域名上进行过滤,那么您可以使用以下内容:

^[a-z0-9._%+-]+@[a-z0-9.-]+\.(?:edu|gov|mil)$

这只会验证以.edu.gov.mil结尾的电子邮件地址。例如,

bah@humbug.gov <- valid
guy.smiley@gmail.com <- invalid
doctor.who@univ.edu <- valid
person@anything.com <- invalid

注意:这些都会假设Ignore Case的正则表达式选项已开启。

如果您还想允许使用两个字母的顶级域名国家/地区代码,例如.fr.ca,则可以为此添加一个表达式:

^[a-z0-9._%+-]+@[a-z0-9.-]+\.(?:[a-z]{2}|edu|gov|mil)$

如果您想要排除“三巨头”电子邮件主机,您可以使用以下内容:

^[a-z0-9._%+-]+@(?!gmail\.com|yahoo\.com|hotmail\.com)(?:[a-z0-9.-]+\.?)+$

如果不存在后缀,则使用(?!)匹配的前瞻断言“分组)示例:

bah@humbug.gov <- valid
guy.smiley@yahoo.com <- invalid
doctor.who@univ.edu <- valid
person@anything.com <- valid

电子邮件地址验证的更多正则表达式示例可以是found here