使用以下代码
$regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*"
."@[a-z0-9-]+(\.[a-z0-9-]{1,})*"
."\.([a-z]{2,}){1}$";
if(!preg_match($regex,$subemail)){
$form->setError($field, "* Email invalid");
}
$subemail = stripslashes($subemail);
}
我收到以下错误
Warning: preg_match() [function.preg-match]: No ending delimiter '^' found
非常感谢任何帮助。
答案 0 :(得分:0)
现在它认为^
是开头分隔符,因此期待最后的另一个分隔符。您可以使用任意数量的分隔符,例如/
和/
,@
和@
,<
和>
等。下面的一个使用/
和/
作为开始/结束分隔符:
$regex = "/^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*"
."@[a-z0-9-]+(\.[a-z0-9-]{1,})*"
."\.([a-z]{2,}){1}$/";
答案 1 :(得分:0)
您必须使用#
或/
这样包围您的模式:"#[abc]+#"
Personnaly我使用#,因为它比/
更明显对于电子邮件验证,标准PHP函数使用filter_var('bob@example.com', FILTER_VALIDATE_EMAIL)
(请参阅http://www.php.net/manual/en/function.filter-var.php)