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

WBOY
リリース: 2016-07-25 08:57:55
オリジナル
1265 人が閲覧しました
この記事では、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})$/ ^$

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

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

りー


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!