JavaScriptで正規表現の基本的なアプリケーション

正規表現:正規表現

正規表現は、捕捉として試験()検証のために、使用することもできる一致()、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"); // =>捕捉結果は、アレイでありますコンテンツパケットを構成する個々のは、どんな小さなを取得しました

 

 

 

おすすめ

転載: www.cnblogs.com/zhongjiayi/p/11695866.html