ホームページ  >  記事  >  バックエンド開発  >  メールアドレスをphpの正規表現で照合する際の問題の分析

メールアドレスをphpの正規表現で照合する際の問題の分析

WBOY
WBOYオリジナル
2016-07-25 08:57:551266ブラウズ
この記事では、PHP で正規表現を使用して電子メール アドレス (EMail) を照合するときに発生する問題とその解決策を紹介します。困っている友達は参考にしてください。

phpの正規表現は電子メールと一致します。コードは次のとおりです:

リーリー

上記の出力はなぜ合法なのでしょうか? {2,10}ここには 2 ~ 10 桁しか入力できませんが、上記のメール アドレスは 10 桁を超えています。 この正規表現は一致する可能性があり、この部分「545454545k@qq.com」と一致します。 1412424545645454 の最初の部分は一致しないため、依然として合法です。

正しいマッチングは次のように変更できます:

$a='/^([w._]{2,10})@(w{1,}).([a-z]{2,4})$/';

通常のルールに注意してください: /([w._]{2,10})@(w{1,}).([a-z]{2,4})/ これにはアサーションがありません。つまり、文字列内に一致する部分がある限り一致します。したがって、{2,10} は 2 ~ 10 桁のみと一致しますが、文字列全体と一致するわけではありません。一部として一致します。 文字列全体が一致するかどうかを判断するには、アサーションを使用する必要があります。 ^ $ など /^([w._]{2,10})@(w{1,}).([a-z]{2,4})$/ ^$

が先頭と末尾に追加されることに注意してください

完璧なコードは次のとおりです:

りー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。