Web アプリケーションでは、ユーザー名の検証は非常に重要な部分です。ユーザーが登録するときは、ユーザーが無効なユーザー名や悪意のあるユーザー名を入力できないように、ユーザー名が特定のルールを満たしていることを確認する必要があります。 PHP は、入力テキストのチェックと検証に使用できる強力で柔軟な正規表現 (略して Regex) 関数を提供します。この記事では、PHP の正規表現を使用してユーザー名の形式を確認する方法を紹介します。
ユーザー名ルールの検証
ユーザー名検証正規表現を作成する前に、まずユーザー名ルールを決定する必要があります。通常、ユーザー名には文字、数字、アンダースコアのみを含める必要があります。長さは 4 ~ 16 文字にする必要があり、数字やアンダースコアで始めたり、アンダースコアで終わったりすることはできません。さらに、ユーザーが機密情報や攻撃コードを入力するのを防ぐために、ユーザー名から山括弧、引用符、スラッシュなどの一部の特殊文字を除外する必要があります。
次はユーザー名ルールの例です:
正規表現を記述する
ルールを使用すると、正規表現を記述できます。 PHP では、preg_match() 関数を使用して、ユーザー入力が正規表現ルールに準拠しているかどうかを確認します。以下は、ユーザー名を検証するための基本的な正規表現です:
$pattern = '/^[a-zA-Z0-9_]{4,16}$/';
This 正規表現式では、ロケーター ^ (入力文字列の先頭と一致) と $ (入力文字列の末尾と一致) を使用します。このうち角括弧 ([]) は一連の文字を表し、ユーザー名に文字、数字、アンダースコアのみを使用できることを示します。中括弧 ({}) は範囲を示し、ユーザー名の長さが 4 ~ 16 文字であることを示します。
次に、ルールを追加して、ユーザー名が他の要件を満たしていることを確認する必要があります。具体的には、数字またはアンダースコアで始まりアンダースコアで終わるユーザー名を除外する必要があります:
$pattern = '/^[a-zA-Z][a-zA-Z0-9_] {3 ,15}$/';
この正規表現は、新しいルールを追加します。つまり、ユーザー名は文字で始まり、長さは 4 ~ 16 文字である必要があります。
最後に、山括弧、引用符、スラッシュなどのいくつかの特殊文字を除外する必要があります。これは、文字セットでエスケープ文字 () を使用することで実現できます:
$pattern = '/^[^s<>/\'"]{4,16}$/';
この正規表現では、特殊文字を除外するために ^ (負の) 文字セットを使用します。文字セットにスペースを含めることはできないため、スペースを除外するために s (スペース) が使用されることに注意してください。
Use preg_match ( ) 関数でユーザー名を確認します。
ここで、正規表現を使用して、preg_match() 関数を使用して、入力されたユーザー名が要件を満たしているかどうかを確認できます。サンプル コードは次のとおりです:
$ユーザー名 = "my_name123";
$pattern = '/^[^s<>/\'"]{4,16}$/';
if (preg_match($pattern, $username)) {
echo "用户名合法";
} else {
echo "用户名不合法";
}
この例では、$username は入力されたユーザー名で、$pattern はユーザー名を確認するための正規表現です。ユーザー名が正規表現と一致する場合は「ユーザー名は正当です」が出力され、そうでない場合は「ユーザー名が不正です」が出力されます。
結論
PHP 正規表現を使用してユーザー名の形式を検証することは、登録ユーザーのデータ セキュリティとアプリケーションのセキュリティを確保するのに役立つ重要なタスクです。正規表現を記述するときは、ユーザー名のすべてのルールを慎重に検討し、詳細にテストして検証する必要があります。 preg_match() 関数を使用すると、入力したユーザー名が要件を満たしているかどうかを簡単に確認できます。
以上がPHP正規表現を使用してユーザー名の形式を確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。