Preg_Match - RegEx错误

时间:2013-09-28 22:01:43

标签: php

使用以下代码

$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 

非常感谢任何帮助。

2 个答案:

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