如何用preg_match替换此代码上的eregi?
$subemail=$_POST['emailadd'];
$regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]{1,})*\.([a-z]{2,}){1}$";
if(!eregi($regex, $subemail)){
//do this
}
答案 0 :(得分:1)
为什么不使用filter_var来验证电子邮件?
var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
答案 1 :(得分:0)
只需在原始正则表达式之前和之后添加分隔符(我使用/
),然后在末尾添加i
标记。
if(!eregi( "/". $regex ."/i", $subemail)){
//do this
}
答案 2 :(得分:0)
尝试以下代码。
$regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/';
if (preg_match($regex, $email)) {
echo $email . \" is a valid email. We can accept it.\";
} else {
echo $email . \" is an invalid email. Please try again.\";
}