使用正则表达式在PHP中使用多级域验证电子邮件地址
需要使用单域级别或多域级别验证电子邮件地址。(实际上,域级别您的正则表达式在接受电子邮件地址时应用了更多规则。例如,允许电子邮件地址包含多个使用正则表达式在PHP中使用多级域验证电子邮件地址,php,regex,Php,Regex,需要使用单域级别或多域级别验证电子邮件地址。(实际上,域级别您的正则表达式在接受电子邮件地址时应用了更多规则。例如,允许电子邮件地址包含多个@符号。请按照您自己的规则执行: ^[a-z][^@]*@(([a-z][a-z0-9-]+)\.){0,3}(?2)$ 也许这就是你要找的 ^ [a-zA-Z][-.\w]* # before @ @ [a-zA-Z][-.\w]+ # first subdomain (?: \.[a-zA-Z][-.\w]+ # eve
@
符号。请按照您自己的规则执行:
^[a-z][^@]*@(([a-z][a-z0-9-]+)\.){0,3}(?2)$
也许这就是你要找的
^
[a-zA-Z][-.\w]* # before @
@
[a-zA-Z][-.\w]+ # first subdomain
(?:
\.[a-zA-Z][-.\w]+ # eventually others
){1,3}
$
请参阅。尝试使用
过滤验证电子邮件过滤var()
?我已经完成了一个过滤var($s\u电子邮件,过滤消毒电子邮件);@abracadver我需要验证这样的东西->000@example.com.jp所以,如果我使用FILTER_VALIDATE_电子邮件本身,上面说的电子邮件在技术上也是有效的。因为这是一封有效的电子邮件,所以你只想接受某些有效的电子邮件…你能解释一下这部分吗[^@]*@是的,它意味着除了@
到@
之外的任何字符。如果您没有使用a-Z
,则需要i
修饰符。这不值得注意,但我已经在live demo中设置了它。@abracadever您忽略了用户名/域名中带有点
和破折号-
的电子邮件地址。
^
[a-zA-Z][-.\w]* # before @
@
[a-zA-Z][-.\w]+ # first subdomain
(?:
\.[a-zA-Z][-.\w]+ # eventually others
){1,3}
$