Preg_Match - 正则表达式错误


Preg_Match - RegEx Error

使用以下代码

$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 

任何帮助将不胜感激。

现在它认为^是开界符,因此期待在最后出现另一个分隔符。您可以使用任意数量的分隔符,例如//,或@@,或<>等。下面的一个使用 // 作为其开盘/收盘分隔符:

     $regex = "/^[_+a-z0-9-]+('.[_+a-z0-9-]+)*"
         ."@[a-z0-9-]+('.[a-z0-9-]{1,})*"
         ."'.([a-z]{2,}){1}$/";
你必须

用这样的#/包围你的模式: "#[abc]+#"

我个人使用#,因为它比/

对于电子邮件验证标准PHP函数,请使用filter_var('bob@example.com', FILTER_VALIDATE_EMAIL)(请参阅 http://www.php.net/manual/en/function.filter-var.php)