0

我在使用正则表达式验证电子邮件地址时遇到问题。代码似乎可以正常工作,直到用户在末尾放置一些用(.dot)分隔的长字符。代码是

if(preg_match('~^\b[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-z]{2,4}+\b$~',$_POST["email"]))

{
    $valid ="valid";
}
else
{
    $valid ="invalid";
}

当用户输入类似 ksdlk@gll.lik.ij.lio.lk.gr 的内容时,问题就出现了,它返回“有效”。如何处理最后一个字符,这将只允许来自@ 的 4,5 个字符,如“.com”或“.co.uk”。

提前致谢

4

1 回答 1

1

尝试使用这个

if(filter_var('email@example.com', FILTER_VALIDATE_EMAIL))return TRUE;
else return FALSE;
于 2012-07-05T08:55:26.857 回答