警告:preg_match()[function.preg-match]:没有结束分隔符' ^

时间:2014-11-06 02:46:18

标签: php regex

当我在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......

知道应该是什么吗?

2 个答案:

答案 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;
}