我想只允许有效和非公开电子邮件地址的电子邮件地址,例如gmail,yahoo,hotmail等。
任何人都可以帮我检查吗?我猜我需要使用正则表达式,但不确定是否有更简单的方法
答案 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。