我只想允许有效的非公开电子邮件地址,例如 gmail、yahoo、hotmail 等。
任何人都可以帮我检查一下吗?我猜我需要使用正则表达式,但不确定是否有更简单的方法
如果您只需要过滤顶级域,那么您可以使用以下内容:
^[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
打开了 regex 选项。
如果您还希望允许使用两个字母的顶级域国家代码,例如.fr
or .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
可以在此处找到更多电子邮件地址验证的正则表达式示例。