ホームページ  >  記事  >  バックエンド開発  >  PHPメールアドレス正規表現の実装と詳細説明、メールアドレス正規表現_PHPチュートリアル

PHPメールアドレス正規表現の実装と詳細説明、メールアドレス正規表現_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-12 08:55:501170ブラウズ

PHPメールアドレス正規表現の実装と詳細な説明、メールアドレス正規表現

この記事では、正規表現についてだけでなく、知っておく必要があるメール正規表現の構成と使用法についても詳しく説明します。さらに、さまざまな
正規表現

の電子メール検証の例も提供しています。


^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$

この正規表現では、「+」は前の文字列が 1 つ以上連続して出現することを意味し、「^」は次の文字列が先頭に出現することを意味し、「$」は前の文字列が最後に出現することを意味します。 「.」は「.」でもあり、「」はエスケープ文字です。「{2,3}」は、前の文字列が連続して 2 ~ 3 回出現できることを意味します。 「()」は、含まれるコンテンツがターゲット オブジェクトにも出現する必要があることを示します。 「[_.0-9a-z-]」は、「_」、「.」、「-」に含まれる任意の文字、a から z の範囲の文字、および 0 から 9 の範囲の数字を意味します。このように、この正規表現は次のように変換できます:

「次の文字が先頭になければなりません (^)」、「文字は、a から z まで、「_」、「.」、「-」に含まれている必要があります。 0 ~ 9 の範囲の文字、数字 ([_.0-9a-z-])"、"前の文字が少なくとも 1 回出現します (+)"、@、"文字列は a ~ の文字列で構成されます。 z の範囲の文字、0 ~ 9 の範囲の数字で始まり、その後に「-」に含まれる少なくとも 1 つの文字、a ~ z の範囲の任意の文字、0 ~ 9 の範囲の任意の数字が続きます。 with . (([0-9a-z][0-9a-z-]+.))"、"前の文字が少なくとも 1 回表示されます (+)"、"a から z までの文字は 2 ~ 3 回表示されますそしてそれで終わります ([a-z]{2,3}$)」

コードは以下のようにコピーされます
function is_valid_email($email, $test_mx = false)

{

if(eregi("^([_a-z0-9-]+)(.[_a-z0-9-]+ )* @([a-z0-9-]+)(.[a-z0-9-]+)*(.[a-z]{2,4})[wind_phpcode_0 ]quot;, $email))
if ($ test_mx)
true を返す;
else
false を返す;
}

ドメイン名は、さまざまな国の特定の文字セット、英語の文字、数字、および「-」(つまり、ハイフンまたはマイナス記号)の任意の組み合わせで構成されますが、先頭または末尾に「-」を含めることはできません。 -」を連続して表示することはできません。 ドメイン名の文字は大文字と小文字が区別されません。ドメイン名の長さは最大 60 バイトです (サフィックス .com、.net、.org などを含む)。
/^[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0- 9]+)+[.][a-z]{2,3}([.][a-z]{2})?$/i;
/content/i は大文字と小文字を区別しない正規表現を形成します;
^ マッチングが始まります

$試合終了

[a-z] 電子メールの接頭辞は英字で始まる必要があります


([a-z0-9]*[-_]?[a-z0-9]+)* は、_a_2、aaa11、_1_a_2 には一致しますが、a1_、aaff_33a_、a__aa には一致しません。NULL 文字の場合は一致しません。も一致します。 * は 0 以上を意味します。

* は先行する 0 個以上の文字を表します。

[a-z0-9]* 0 個以上の英語の文字または数字と一致します

[-_]?「-」は連続して出現できないため、0 または 1 つの「-」と一致します

[a-z0-9]+ は、「-」を末尾として使用できないため、1 つ以上の英語の文字または数字に一致します

@ @

が 1 つあるはずです

([a-z0-9]*[-_]?[a-z0-9]+)+ 上記を参照 ([a-z0-9]*[-_]?[a-z0-9]+) ※説明ですが空にすることはできません、+は1つ以上を意味します。

[.] は特殊文字 (.) を通常の文字として扱います

[a-z]{2,3} は 2 ~ 3 個の英字 (通常は com や net など) に一致します。

([.][a-z]{2})? 0 または 1 [.][a-z]{2} (.cn など) と一致します。.com.cn の最後の部分が通常は 2 ビットですが、そうでない場合は、{2} を {開始単語の数、終了単語の数} に変更してください

詳細な説明付きの完璧な電子メール正規表現。テストに協力してください。 2. 文字列内のメールを抽出します:

コードは次のとおりです コードをコピーします
function getEmail($str) {
$pattern = "/([a-z0-9]*[-_.]?[a-z0-9] +)*@ ([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2}) ?/i" ;
preg_match_all($pattern,$str,$emailArr);
return $emailArr[0];
}
$emailstr = "9999@qq.com.cn俺不米 http://www.hzhuti .com/nokia /5235/ vi の場所で iid メーリング リストを開きます: fuyongjie@163.com および hh@qq.com;.;;,fuyongjie.100@yahoo.com,fu-1999@sina.com";
$ emailArr = getEmail( $emailstr);
echo "

";<br>print_r($emailArr);<br>echo "
";
?>次のように出力します:
Array
(
[0] =>9999@ qq.com.cn
[1] =>fuyongjie@163.com
[2] =>hh@qq.com
[3] =>fuyongjie.100@yahoo.com
[ 4] => fu-1999@sina.com
) 3. 比較: 2 番目の正規表現には、最初の正規表現にある ^ と $ がありません。

もう一度例を見てください

コードは以下の通り コードをコピー

function funcemail($str)//メール正規表現
{
return (preg_match('/^[_.0-9a-z-a-z-]+@([0-9a-z ][0 -9a-z-]+.)+[a-z]{2,4}$/',$str))?true:false;
}//検証方法 1

$str="qbcd@126.com.cn";

preg_match("/^[0-9a-z]+@(([0-9a-z]+)[.])+[a-z]{2 ,3}$/",$str,$re);
print_r($re);//メール認証 2 つ

if (エレギ("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$", $email)) {

echo "あなたのメールは予備チェックに合格しました";
}// 3 番目のメール認証方法

if (ereg("/^[a-z]([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_] ?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?$/i; ",$email)){

echo "あなたのメールアドレスは正しいです!";}
else{
echo "もう一度お試しください!";
}

http://www.bkjia.com/PHPjc/1114477.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/1114477.html技術記事 PHP メール アドレスの正規表現の実装と詳細な説明、メール アドレスの正規表現 この記事では、正規表現についてだけでなく、メールの正規表現の構成と使用方法の詳細な説明についても説明します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。