2

使用以下代码

$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 

任何帮助将不胜感激。

4

2 回答 2

0

现在它认为 the^是开始的分隔符,因此期待另一个在结尾处。您可以使用任意数量的分隔符,例如/and /, or @and @, or <and>等。下面的一个使用/and/作为它的开始/结束分隔符:

     $regex = "/^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*"
         ."@[a-z0-9-]+(\.[a-z0-9-]{1,})*"
         ."\.([a-z]{2,}){1}$/";
于 2013-09-28T22:09:29.923 回答
0

#您必须使用或/这样围绕您的模式:"#[abc]+#"

我个人使用 # 因为它比 / 更明显

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

于 2013-09-28T22:12:21.223 回答