JavaScript正規表現

3566 ワード

正規表現(英語:Reglar Expression、コードの中では常にregex、regexpまたはREと表記されています)は、1つの文字列を使用して記述され、1つの構文ルールに適合した一連の文字列検索モードにマッチします.検索モードはテキスト検索とテキスト置換に使用できます.
正規表現とは?
  • 正規表現は、1つの文字列からなる検索モードである.
  • テキストでデータを検索すると、検索モードで検索したい内容を記述することができます.
  • 正規表現は、単純な文字またはより複雑なモードであってもよい.
  • 正規表現は、すべてのテキスト検索およびテキスト置換のために使用されてもよい.
  • //  
    /       /   (  )
    
    var patt = /runoob/i
    /*
    /runoob/i          。
    runoob             (    )。
    i         (        )。
    */
    
    文字列の使い方
    JavaScriptでは、正規表現は通常、2つの文字列方法:search()とreplace()に用いられる.
  • search()方法は、文字列に指定されたサブ文字列を検索するか、正規表現に一致するサブ文字列を検索し、サブストリングの開始位置を返します.
  • replace()メソッドは、文字列の中で他の文字を一部の文字で置換するか、正規表現と一致するサブストリングを置換するために使用される.
  • search()
    //search()         
    var str = "Visit Runoob!"; 
    var n = str.search(/Runoob/i);  // 6
    
    //search()        
    var str = "Visit Runoob!"; 
    var n = str.search("Runoob");
    
    replace()
    //replace()          
    //                     Microsoft     Runoob :
    var str = document.getElementById("demo").innerHTML; 
    var txt = str.replace(/microsoft/i,"Runoob");
    
    //replace()        
    var str = document.getElementById("demo").innerHTML; 
    var txt = str.replace("Microsoft","Runoob");
    
    正規表現の修飾子
    修飾子は大域検索で大文字と小文字を区別しないことができます.
    修飾子
    説明
    i
    大文字と小文字のマッチングに敏感ではありません.
    g
    グローバルマッチングを実行します.最初のマッチが見つかったら停止するのではなく、すべてのマッチを検索します.
    m
    複数行マッチを実行します.
    正規表現モード
    四角括弧は、ある範囲の文字を検索するために使用されます.
    表式
    説明
    [abc]
    四角いかっこの中の任意の文字を検索します.
    [0-9]
    0から9までのすべての数字を検索します.
    (x 124 y)
    |で区切られた任意のオプションを検索します.
    メタ文字
    説明
    \d
    数字を検索します
    \s
    空白の文字を検索します.
    \b
    単語の境界にマッチします.
    \uxxxx
    16進数xxxxで規定されているユニフォーム文字を検索します.
    メタ文字は特殊な意味を持つ文字です.
    メタ文字
    説明
    \d
    数字を検索します
    \s
    空白の文字を検索します.
    \b
    単語の境界にマッチします.
    \uxxxx
    16進数xxxxで規定されているユニフォーム文字を検索します.
    助数詞:
    助数詞
    説明
    n+
    少なくとも1つのnを含むすべての文字列にマッチします.
    n*
    ゼロまたは複数のnを含む任意の文字列にマッチします.
    nですか
    ゼロまたはnを含むすべての文字列にマッチします.
    RegExpオブジェクトを使う
    JavaScriptでは、RegExpオブジェクトは属性と方法を予め定義した正規表現オブジェクトです.
    testを使う()
    test()法は正規表現法である.test()メソッドは、文字列があるモードにマッチするかどうかを検出します.文字列にマッチするテキストが含まれている場合、trueを返します.そうでなければfalseを返します.
    var patt = /e/;
    patt.test("The best things in life are free!"); //        "e" true
    
    /e/.test("The best things in life are free!") //true
    
    exec()を使う
    exec()方法は正規表現法である.exec()メソッドは文字列内の正規表現のマッチングを検索するために使用されます.関数は、マッチングの結果を保存する配列を返します.マッチが見つからない場合、戻り値はnullです.
    /e/.exec("The best things in life are free!");  //e
    
    /*      */
    function    isDecimal(strValue )  {  
       var  objRegExp= /^\d+\.\d+$/;
       return  objRegExp.test(strValue);  
    }  
    
    /*           */
    function ischina(str) {
        var reg=/^[\u4E00-\u9FA5]{2,4}$/;   /*       */
        return reg.test(str);     /*    */
    }
    
    /*      8      */
    function isStudentNo(str) {
        var reg=/^[0-9]{8}$/;   /*       */
        return reg.test(str);     /*    */
    }
    
    /*        */
    function isTelCode(str) {
        var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/;
        return reg.test(str);
    }
    
    /*           */
    function IsEmail(str) {
        var reg=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
        return reg.test(str);
    }
    
    その他のインスタンス
  • JSは、入力文字列が数字、文字、下線構成
  • であるかどうかを判断する.
  • JSは、入力文字列が全部文字列かどうか判断します.
  • です.
  • JSは、入力文字列が全部数字
  • であるかどうかを判断する.
    完全なRegExp参考マニュアル
    完全なRegExpオブジェクト参照マニュアルは、JavaScript RegExp参照マニュアルを参照してください.この参照マニュアルには、すべてのRegExpオブジェクトの方法と属性が含まれています.