需要正则表达式来检测first.second@domain.tld
但未在([a-z0-9A-Z])@domain.tld
有效:abc123XYZ@domain.tld
无效:abc12.de456@domain.tld
我认为某个时段在电子邮件地址中位于@
之前是合法的,但需要检测该条件。
答案 0 :(得分:2)
假设您已将此验证为正确的电子邮件地址:
\..*@
表示:.
,然后是0个或更多字符的序列,然后是@
答案 1 :(得分:1)
您不需要使用正则表达式,只需将句点的位置与at符号进行比较:
// assuming there's already an `@` in $email
if (($p = strpos($email, '.')) !== false && $p < strpos($email, '@')) {
echo 'invalid';
}
如果电子邮件地址中没有@
,则不会打印'invalid'
,因为任何整数都不会严格小于false
。
答案 2 :(得分:0)
\.(?=.*@)
应该做的伎俩。