関数付きの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})$";
これを修正する方法は?
関数付きの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})$";
これを修正する方法は?
使用するだけです:
$pattern = "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i";
多分使ってる
filter_var($email, FILTER_VALIDATE_EMAIL);
より簡単なアプローチになります。
このコードを使用してください
<?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";
?>
PHP で関数 filter_var() を使用するのは、ポストマスターが電子メール アドレスの RFC スタイルの一致を許可したい場合にのみ簡単になります。一部のアプリケーションまたは MTA (sendmail など) では、これは望ましくない場合があります。ただし、preg_match() ルートに進む場合は、貪欲でない量指定子と、バッファを使用しないキャプチャ ステートメントを調査することをお勧めします。開始するのに適した場所はhttp://us3.php.net/manual/en/book.pcre.phpです。
var emailid = $.trim($('#emailid').val());
if( ! /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(emailid)){
alert("<?php echo "email_invalid" ?>");
return false;
}