当我在php 5.3中运行它时:
public function isValidEmail($email)
{
//$pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$";
return (preg_match($pattern, $email)) ? 1 : 0;
}
我收到此消息:
Warning: preg_match() [function.preg-match]: No ending delimiter '^' in......
知道应该是什么吗?
答案 0 :(得分:0)
你的模式应该是这样的,把' /'在模式之前和之后。
/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})+$/
最后一个$ 之前的和+符号
答案 1 :(得分:0)
已经指出了主要问题,您的正则表达式模式未被 delimiters 括起来。同样,您可以避免使用三元运算符,也不必返回preg_match()
的值。
function isValidEmail($email) {
$pattern = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i';
return preg_match($pattern, $email);
}
您可以考虑使用filter_var()
功能检查电子邮件地址是否格式正确。
function isValidEmail($email) {
return filter_var($email, FILTER_VALIDATE_EMAIL) ? 1:0;
}