需要正则表达式来检测first.second@domain.tld
但没有检测到([a-z0-9A-Z])@domain.tld
有效的:abc123XYZ@domain.tld
无效的:abc12.de456@domain.tld
我承认电子邮件地址中的句号是合法@
的,但需要检测这种情况。
需要正则表达式来检测first.second@domain.tld
但没有检测到([a-z0-9A-Z])@domain.tld
有效的:abc123XYZ@domain.tld
无效的:abc12.de456@domain.tld
我承认电子邮件地址中的句号是合法@
的,但需要检测这种情况。
Assuming that you've already validated this as a proper email address:
\..*@
Which means: A .
, then a sequence of 0 or more characters, then a @
您不需要正则表达式,只需将句点的位置与 at 符号进行比较:
// assuming there's already an `@` in $email
if (($p = strpos($email, '.')) !== false && $p < strpos($email, '@')) {
echo 'invalid';
}
如果@
电子邮件地址中没有,则不会打印'invalid'
,因为任何整数都不会严格小于false
.
\.(?=.*@)
应该做的伎俩。