正規表現:正規表現
正規表現は、捕捉として試験()検証のために、使用することもできる一致()、EXEC()を使用することができます
STR = "良い良い研究、日々アップを!"しましょう。 REGを聞かせて = / \ D + /; // デジタルがあるかどうかを確認 。reg.test(STR)// => falseを STR = "2019年10月1日" 。 reg.exec(STR); // => [ "2019"、インデックス:0、入力: "元の文字列"]
正規表現を書く1
作成するには、2つの方法があります。
// =>実施形態リテラルに(2つのスラッシュ間のラップはルールのメタ文字を記述するために使用されている)を作成し てみましょうREG1を= / \ D + / ; // 要素:=>モードのコンストラクタは、2つのパラメータを作成し、文字列、文字列の修飾子 のlet REG2 = 新しい新しい正規表現(「\\ + D」);
正規表現は二つの部分から構成されたメタ文字 と 修飾子
元の文字:
数量詞のメタ文字を:出現回数を設定します。
* // いくつかのゼロ + // へ複数回 ? // ゼロまたは {N} //はn回発生 {N} //のにn回発生 {M、N} // nに見えますm回
特殊文字要素:単一または一緒に組み合わせて、特別な意味を表します
\ // エスケープ文字(ノーマル- >スペシャル- >一般) 。 // \ nより(改行)以外の任意の文字の ^ // どのメタ文字はそもそも $ // エンドとしてメタキャラクタいるのを \ N- // 改行 \ D // 0〜9までの数字 D \ // 非(大文字と小文字が意味で逆になっている)0~9の間の数、 \ W // 数字、文字は、下線任意の1つの文字 の\ S // (スペース、タブ、フォームフィードなどを含む)の空白文字は、 \ T // タブ文字(TABキー:4つのスペース) の\ B //は、単語の境界と一致しました x | yは // xまたはyの文字を [XYZ] // xまたはyまたはzは、の文字です [^ XY] // X / Yの以外の任意の文字 [AZ] // この範囲AZ任意の文字を指定[0-9A-ZA-Z _] === \ W [^ AZ] // のいずれか否定「非」 () // 通常の区切り記号が入っている (?:) // だけキャプチャしませ一致 (?=) // 正事前調査 (?!) // 負にする事前チェック
共通のメタ文字:そのものの意味に代わっ
/こんにちは/ // この正規マッチは「こんにちは」であります
第二に、修飾子:
/ * 一般的に使用される正規表現修飾子:IMG * / I => ignoreCaseは // 無視単語は大文字一致 M =>複数行 // マルチマッチングすることができる G =>グローバル // グローバルマッチング 」/A/.testを(ラララ')=> falseに /A/i.test('lalala')=> trueに
詳細なアプリケーションのメタキャラクタ
^ $
REG LET = / ^ \のD / ; はconsole.log(reg.test( "こんにちは")); // => falseに はconsole.log(reg.test( "2019hello")); // => trueに はconsole.log (reg.test( "hello2019")); // => falseに しましょうREG = / \ Dの$ / ; はconsole.log(reg.test( "こんにちは")); // => falseに はconsole.log(REG。テスト( "2019hello")); // => falseに はconsole.log(reg.test( "hello2019")); // => trueに // =>追加しないでください^ / $ 2:文字列の遵守ルールの内容 ましょうREG1 = / \ D + / ; // =>^ / $プラス2つです:文字列と唯一のルールは、の内容と一致していることができ たlet REG2 = / ^ \ dの+ $ / ; //=>例:検証電話番号(11ビット、最初の数は1である) させREG = / ^ 1 \ {D} $ 10 /。
\
REG = /^2.3$/ LET ; はconsole.log(reg.test( "2.3")); // => trueに はconsole.log(reg.test() "2. 3 @"); // => trueに コンソール.logの(reg.test( "23")); // => falseを // =>のみ小数点を表す許可エスケープ文字に基づいて REGを= /^2\.3$/ ; はconsole.log(REG。テスト("2.3")); // => trueに はconsole.log(reg.test( "2. 3 @")); // => falseに LET STR = "\\ D" ; REG = / ^ \ $ D /; // => \ Dの0-9代表 はconsole.log(reg.test(STR)); // => falseに REG = / ^ $ Dを\\ /。 // =>スペシャルは通常の変換に準拠します console.log(reg.test(STR))。 // =>真
X |と
REG = LET / ^ 18 | 29 $ / ; はconsole.log(reg.test( "18")); // => trueに はconsole.log(reg.test( "29")); // => trueに コンソール.logの(reg.test( "129")); // => trueに はconsole.log(reg.test( "189")); // => trueに はconsole.log(reg.test( "1829")) ; // => trueに はconsole.log(reg.test( "829")); // => trueに はconsole.log(reg.test( "182")); // => trueに // ---直接グループ:| X、Yの混乱は、一般的に、我々は、理由の優先=>括弧括弧変更プロセス彼らは小さなグループ化括弧を伴っている場合、書き込み、優先順位の問題があるでしょう | REG = / ^(29 18 $ /) ; にconsole.log(reg.test( "18が"));// =>真 console.log(reg.test( "29")); // => trueに はconsole.log(reg.test( "129")); // => falseに はconsole.log(reg.test( "189") ); // => falseに // =>は、18または29であることができます
// 1.括弧内に登場するキャラクタ一般的に意味のプロキシ ましょうREG = / ^ [+] $ / ; はconsole.log(reg.test( "@")); // => trueに はconsole.logを(reg.test( "+")); // => trueに はconsole.log(reg.test( "@@")); // => falseに はconsole.log(reg.test( "@ +")) ; // => falseに REG = / ^ [\ D] $ /; // => \またはD括弧0-9で はconsole.log(reg.test( "D")); // => falseに console.log(reg.test( "\\")); // => falseに はconsole.log(reg.test(」9" )); // => trueに // 括弧の数の非存在下で2。数 REG = / ^ $ / [18です] 。 console.log(reg.test("1")); // =>真 はconsole.log(reg.test( "8")); // =>真 はconsole.log(reg.test( "18")); // => falseを REG = / ^ [10-29] $ /; // => 1或者0-2或者9 はconsole.log(reg.test( "1")); // =>真 はconsole.log(reg.test( "9")); // =>真 はconsole.log(reg.test( "0")); // =>真 はconsole.log(reg.test( "2")); // =>真 はconsole.log(reg.test( "10")); // => falseを
いくつかの例:
1.その有効な番号を確認してください
/ * ルール分析 ? -数を、または発生しないことがあります- * 1が+生じる可能性がある[+] * 2を0-9することができ、最初の場所は、\ dは(0以上にすることはできません|([1-9 ] \ + D)) *小数点以下の数字(\ \ + D)+そこに従わなければならない場合3.小数部分は、可能ではないかもしれません。? * / ましょうREG = / ^ [+ - ](\ D |([1-9]? 。\ D +))(\ \ D +)$ / ?;
2.パスワードを確認してください
// =>数字、文字、下線 @ => 6〜16 ヴァル=ましょうuserPassInp.value、 REG = / ^ \ {W} $ 6,16 / ; フラグにLET = reg.test(ヴァル); 関数checkPass (ヴァル){ IF(val.length <|| 6 val.length。> 16 ){ アラート( '6-16の間でなければなりません!' ); 返す; } せ面積 = [ 'A'、「B '....'_']; // =>数字は、文字は、下線含まれている ため(LET I = 0;私はval.lengthを<;私は++ ){ LETの文字 = ヴァル[I]は、 IF(area.includes! (チャー)){ アラート( 'フォーマットが正しくありません!' ); リターン; } } }
3.実際の名前を確認してください
/ * * 1.文字/ ^ [\ u4E00- \ u9FA5] $ / *名前の長さは2〜10 2. * 3。いくつかの翻訳漢字(・[\ u4E00- \ u9FA5] {2,10}){ } 0,2 * / LET REG = / ^ [\ u4E00- \ u9FA5] {2,10}(・[\ u4E00- \ u9FA5] {2,10})$ {0,2} /。
4.メールボックスを確認してください
REG = /^\w+((-\w+)|(\.\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+てみましょう。)* \ [A-ZA-Z0-9] + $ / ; // - |(。\ \ W +)=> \ Wの+((\ + W))* // 1は、英数字、アンダースコアを開始します(1により)より // 2とすることもできる-英数字の文字や数字が何倍に全体的なゼロを強調強調する
5. ID番号(一致する特定のコード番号も全体地方都市や郡で)
/ * * 1 18の合計 最後の一つはX-であってもよい* 2 * * IDカード6の前に:地方都市や郡 *中間8:日付 *最後の4: *最後=> Xまたはデジタル * =最後から二番目>偶奇F M *が計算アルゴリズムの残りの結果である * / // ましょうREG = / ^ \ {D} 17(\ D | X-)$ /; // =>は、パケットを括弧第2動作:パケットキャプチャは、大正と一致しない情報のみ捕捉、コンテンツは、各小パケットを個別に取り込むことができ せREG = / ^(\ dの {6})(の\ D {4}) (\ D {2})(\ D {2})\ D {2}(\ D)(\ D | X-)$ / ; reg.exec( "123456789012345678"); // =>捕捉結果は、アレイでありますコンテンツパケットを構成する個々のは、どんな小さなを取得しました