ホームページ > バックエンド開発 > PHPチュートリアル > PHP 正規表現の動作: ユーザー名の一致

PHP 正規表現の動作: ユーザー名の一致

王林
リリース: 2023-06-23 09:14:01
オリジナル
1448 人が閲覧しました

Web 開発では、データの形式制限や形式チェックを実行する必要がよくありますが、PHP 正規表現は、そのような操作を行うための強力なツールの 1 つです。この記事では、PHP 正規表現を使用してユーザー名を照合する方法を実戦を通して説明します。

1. ユーザー名の要件

まず、マッチングにどのような種類の正規表現を使用する必要があるかを知るために、ユーザー名の要件を明確にする必要があります。通常、ユーザー名の要件は次のとおりです:

  • は文字、数字、またはアンダースコアで構成されます;
  • の長さは 6 ~ 20 文字です;
  • は終わりませんwith 数字で始まります。
  • には特殊文字は使用できません。

これらの要件に基づいて、正規表現の作成を開始できます。

2. 正規表現を記述する

まず、各要件に使用する必要がある正規表現を分析しましょう:

  • は文字、数字、またはアンダースコアで構成されます。

この要件は、文字セット [0-9a-zA-Z_] を使用するだけで簡単に満たせます。

  • 長さは 6 ~ 20 文字です。

この要件では、量指定子の使用が必要です。つまり、{6,20} は 6 ~ 20 文字の一致を意味します。文字セットを文字セットに追加し、最終的に [0-9a-zA-Z_]{6,20} を取得する必要があります。

  • は数字で始まっていません。

この要件では、ゼロ幅アサーションの使用が必要です。つまり、文字セットの前に (?=D) を追加することで、一致が数字以外で始まる必要があることを示します。最後に、(?=D)[0-9a-zA-Z_]{6,20} が得られます。 #########特殊文​​字は使用できません。

  • この要件では特殊文字を除外する必要があります。除外文字セット
1

を使用できます。除外する必要がある文字セットが多数あるため、Unicode エンコード範囲を使用して、除外する必要がある文字セットを表すことができます: [u4e00-u9fa5uFE30-uFFA0u3000-u303F]|[s~!@#$ %^&*()_ ={}[]|\;:'",.<>/?·!¥....()—""[],;':",. 、? ]。最後に次を取得します: (?=D)[0-9a-zA-Z_]{6,20}(?![u4e00-u9fa5uFE30-uFFA0u3000-u303F]|[s~!@#$%^&*( )_ ={}[]|\;:'",.<>/?·!¥....()—""[],;':",.,?])。 3. 正規表現を使用して照合する

正規表現を作成したので、PHP の preg_match 関数を使用して照合できます。以下はサンプル コードです:

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
ログイン後にコピー

コードでは、一致する matchUsername 関数を定義し、テスト ケースを使用してそれぞれを検証します。コードを実行すると、$username1 を除いて、残りのテスト ケースが一致しないことがわかります。

ここまで、PHPの正規表現を使ってユーザー名を一致させる方法を実戦を通して解説してきましたので、初心者の方の参考になれば幸いです。

特殊文字セット

以上がPHP 正規表現の動作: ユーザー名の一致の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート