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

現在、^が開始区切り文字であると考えられているため、最後に別の区切り文字が必要です。/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 に答える