使用最后一个字符验证电子邮件


validation of email, with last characters

我在使用正则表达式验证电子邮件地址时遇到问题。代码似乎工作正常,直到用户在末尾放置一些由 (.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"。

提前致谢

尝试使用这个

if(filter_var('email@example.com', FILTER_VALIDATE_EMAIL))return TRUE;
else return FALSE;