9

関数付きのphpを使用してメールアドレスを検証していpreg_matchます。しかし、私は次のエラーを受け取り続けます

preg_match(): No ending delimiter '^' found

これがpreg_matchの私のパターンです

$pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$";

これを修正する方法は?

4

7 に答える 7

26

使用するだけです:

$pattern = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i";
于 2012-11-19T04:19:00.850 に答える
14

多分使ってる

filter_var($email, FILTER_VALIDATE_EMAIL);

より簡単なアプローチになります。

于 2012-11-19T04:21:28.810 に答える
8

このコードを使用してください

<?php
 $email = "asd/sdff@asdf.com"; 
 $regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/'; 
 $email = (preg_match($regex, $email))?$email:"invalid email";
?>
于 2016-09-23T07:21:38.147 に答える
0

PHP で関数 filter_var() を使用するのは、ポストマスターが電子メール アドレスの RFC スタイルの一致を許可したい場合にのみ簡単になります。一部のアプリケーションまたは MTA (sendmail など) では、これは望ましくない場合があります。ただし、preg_match() ルートに進む場合は、貪欲でない量指定子と、バッファを使用しないキャプチャ ステートメントを調査することをお勧めします。開始するのに適した場所はhttp://us3.php.net/manual/en/book.pcre.phpです。

于 2013-06-18T04:15:36.230 に答える
-2
    var emailid = $.trim($('#emailid').val());  
  if( ! /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(emailid)){
                alert("<?php echo "email_invalid" ?>");

                return false;
            }

emailid は入力タグの ID です

于 2012-11-19T04:45:38.577 に答える