Web 開発では、データの形式制限や形式チェックを実行する必要がよくありますが、PHP 正規表現は、そのような操作を行うための強力なツールの 1 つです。この記事では、PHP 正規表現を使用してユーザー名を照合する方法を実戦を通して説明します。
1. ユーザー名の要件
まず、マッチングにどのような種類の正規表現を使用する必要があるかを知るために、ユーザー名の要件を明確にする必要があります。通常、ユーザー名の要件は次のとおりです:
これらの要件に基づいて、正規表現の作成を開始できます。
2. 正規表現を記述する
まず、各要件に使用する必要がある正規表現を分析しましょう:
この要件は、文字セット [0-9a-zA-Z_] を使用するだけで簡単に満たせます。
この要件では、量指定子の使用が必要です。つまり、{6,20} は 6 ~ 20 文字の一致を意味します。文字セットを文字セットに追加し、最終的に [0-9a-zA-Z_]{6,20} を取得する必要があります。
この要件では、ゼロ幅アサーションの使用が必要です。つまり、文字セットの前に (?=D) を追加することで、一致が数字以外で始まる必要があることを示します。最後に、(?=D)[0-9a-zA-Z_]{6,20} が得られます。 #########特殊文字は使用できません。
を使用できます。除外する必要がある文字セットが多数あるため、Unicode エンコード範囲を使用して、除外する必要がある文字セットを表すことができます: [u4e00-u9fa5uFE30-uFFA0u3000-u303F]|[s~!@#$ %^&*()_ ={}[]|\;:'",.<>/?·!¥....()—""[],;':",. 、? ]。最後に次を取得します: (?=D)[0-9a-zA-Z_]{6,20}(?![u4e00-u9fa5uFE30-uFFA0u3000-u303F]|[s~!@#$%^&*( )_ ={}[]|\;:'",.<>/?·!¥....()—""[],;':",.,?])。 3. 正規表現を使用して照合する
function matchUsername($username) { $pattern = '/^(?=D)[0-9a-zA-Z_]{6,20}(?![u4e00-u9fa5uFE30-uFFA0u3000-u303F]|[s`~!@#$%^&*()_+={}[]|\;:'",.<>/?·!¥……()—《》【】、;‘:“,。、?])$/'; if(preg_match($pattern, $username)) { return true; } return false; } $username1 = 'abcde'; $username2 = 'abcd@e'; $username3 = '1abcde'; $username4 = '123456789abcdefghi'; $username5 = '张三'; $username6 = 'abcdef张三'; var_dump(matchUsername($username1)); // true var_dump(matchUsername($username2)); // false var_dump(matchUsername($username3)); // false var_dump(matchUsername($username4)); // false var_dump(matchUsername($username5)); // false var_dump(matchUsername($username6)); // false
以上がPHP 正規表現の動作: ユーザー名の一致の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。