JavaScriptに登録された名前の正規表現と解析(0ベース)


簡単に言うと
JavaScriptでは、正規表現を用いてモードマッチングを行うことが多い.例えば、ログイン名の検証、パスワード強度の検証、文字列の検索や置換などが行われます.今から始めましょう.ゼロベースで最初の正規表現を書きます.
ユーザー登録をする時は、登録名の正則チェックが必要です.正しい正規表現を書くには、まず表現規則を定義します.登録名を以下のように定義すると仮定します.
  • 最短4位、最長16位{4,16}
  • は、小文字大母[a-z]と大文字[A-Z]
  • を含むことができる.
  • は、数字[0-9]
  • を含むことができる.
  • は、アンダースコア[u]とマイナス記号[-]
  • を含むことができる.
    以上の規則により、正規表現の字面量は以下の通りとなります.
    var pattern = /^[a-zA-Z0-9_-]{4,16}$/
    テスト
    テストの結果は以下の通りです.
    var pattern=/^[a-zA-Z 0-9_-]{4,16}/;
    pattern.test('ift 3')=true
    pattern.test('42 du')=true
    pattern.test('42 du-')=true
    pattern.test('u 42 du')=true
    pattern.test('42 d')=false
    pattern.test('42 du 42 du 42 du 1')=false
    pattern.test('42 du@)=false
    テストコード
    解析
    文字の量//
    正規表現の文字数は、ペアのスラッシュ(/)の間に含まれる文字として定義されています.
    var pattern = /s$/;
    上記の文字列の量は、文字「s」で終わるすべての文字列にマッチします.
    文字クラス[]
    四角い括弧の中に文字を入れると、文字の種類ができます.1つの文字クラスは、その中に含まれる任意の文字にマッチします.したがって、正規表現/[abc]/は、アルファベット「a」、「b」、「c」のいずれかに一致する.
    文字クラスはハイフンで文字の範囲を表します.ラテン小文字にマッチするには/[a-z]/を使用することができます.[a-zA-Z0-9_-]は、任意のラテンの大きさにマッチしてアルファベットを書き、数字に下線とマイナス記号を加えることを表す.
    繰り返します
    正規表現では、要素の繰り返しの回数を{}で表します.
  • {n,m}は前のエントリに少なくともn回マッチングしたが、m回
  • を超えてはいけない.
  • {n,}は、前のn回または複数の
  • と一致する.
  • {n}は、前のn回
  • と一致する.[a-zA-Z0-9_-]{4,16}は、任意のラテンの大きさにマッチしてアルファベットを書き、数字に下線とマイナス記号を加えて最低4回、最大16回を表示します.
    位置合わせ
  • ^マッチング文字列の先頭は、複数行の検索で、1行の先頭
  • に一致します.
  • ドルは文字列の最後にマッチし、複数行の検索では一行の最後に一致する
  • .
    拡張1
    以上の説明に基づいて、上記の正規表現の意味を理解しました.簡単ではないです.
    上記の規則に不満があるなら、次のように規則を追加したいです.
  • 首の字母は大文字だけで
  • です.
    上記の正規表現を簡単に変更します.
    var pattern = /^[a-zA-Z][a-zA-Z0-9_-]{3,15}$/;
    テスト結果は以下の通りです.
    var pattern=/^a-zA-Z{3,15}/;
    pattern.test('ift 3')=true
    pattern.test('Ifat 3')=true
    pattern.test('du 42')=true
    pattern.test('42 du')=false
    pattern.test('d 42')=false
    pattern.test('du 42du 42du 421')=false
    pattern.test('du 42@)=false
    テストコード
    拡張2
    中国語の登録名を許可すると、ルールを変更します.
  • 首の字母は、大文字または中国語の基本漢字だけです.
  • 他の人も中国語の基本漢字を含めてもいいです.
    以下の正規表現を与えます.
    var pattern = /^[a-zA-Z\u4E00-\u9FA5][a-zA-Z0-9\u4E00-\u9FA5_-]{3,15}$/;
    そのうち[\u4E00-\u9FA5]は漢字の正則マッチングであり、基本漢字2万余りを含む.そのうち\u4E00は漢字の「一」を表し、具体的には「漢字unicodeコード範囲」を参照してください.
    テスト結果は以下の通りです.
    var pattern=/^a-zA-Zu 4 E 00-u 9 FA 5{3,15}米ドル/
    pattern.test('ift 3')=true
    pattern.test('Ifat 3')=true
    pattern.test('毛三太')=true
    pattern.test('42 du')=false
    pattern.test('d 42')=false
    pattern.test('du 42du 42du 421')=false
    pattern.test('du 42@)=false
    テストコード
    以上の内容に基づいて、あなたの登録名の正規表現を定義しましょう.
    原文のリンク