JavaScript RegExpオブジェクト正規表現
21817 ワード
記事の目次正規表現を作成します. 文法 助数詞 元の文字 メソッド .string方法と連動する .
正規表現は文字列のルールを定義します.プログラムはこれらの規則に基づいて文字列が規則に合っているかどうかを判断してもいいし、文字列の中の規則に合っている内容を抽出してもいいです.
正規表現を作成:
マッチングモード:マッチングモードを設定する場合は、全部設定しなくてもいいし、1つ設定してもいいし、全設定してもいいです.設定時には順序要求がありません. i:大文字小文字を無視する g:グローバルマッチングモード 正規の文法: を除きます. 例1 /a{2}/不整合“candy”の中の“a” /a{2}/マッチング“caandy”の二つの“a”は、“caaandy.”の中の最初の二つの“a”にマッチする. /ab{2}/マッチングabb /(ab){2}/マッチングab /a{2、}/不整合“candy”中の“a”、 /a{2、}/マッチングは“caandy”と“caaaaaaaandy.”の中のすべての“a”です. /a{1,3}/不整合“cdy” /a{1,3}/マッチング「candy」の中の「a」、「candy」の中の二つの「a」 /a{1,3}/「caaaaaaaaaandy」の前の三つの「a」にマッチします.なお、「caaaaaaaaandy」にマッチする場合、元の文字列がより多くの「a」を持っていても、マッチング項目は「aa」である. /a+/マッチング「candy」の「a」 /a+/マッチング「caaaaaaaaandy」のすべての「a」. /bo*/マッチング「A ghost book」の中の「booo」、 /bo*/マッチング「A bird warbled」の「b」 /bo*/しかし、「A goat grunted」とは一致しません. メタ文字
メタ文字
説明
コメント
正規表現では
スペースを含む
スペースなし
例1:異なる位置のスペースを削除する先頭の任意のアルファベットの数字のアンダースコア→ @→ 任意文字数→ は.任意の文字で終り、1−2個の があるかもしれない.
方法 testは文字列で指定された値を検索する.trueまたはfalseを返します. execは文字列で指定された値を検索します.見つかった値を返し、その位置を決定します. compleは1.5バージョンで破棄されました.コンパイル正規表現. string方法と連動する search()は、正規表現またはサブ文字列から指定されたコンテンツパラメータを検索できます.正規表現または文字列は、表現に基づいて内容を検索し、最初に一致した内容の索引を返します. split()は、指定された内容に従って文字列または正規表現を一つの配列に分割することができます. パラメータ:一つの文字列は、パラメータとして文字列に従って配列を分割し、正規表現を受信することができます.このとき、正規表現に従って配列 を分割します.
match()は、文字列と正規表現の一致する内容をパラメータに抽出することができます.正規表現によれば、文字列の中の要求に合致する内容を抽出し、1つの配列にカプセル化して返します.このパラメータがRegExpオブジェクトでない場合は、まずRegExpコンストラクターに渡す必要があります.これをRegExpオブジェクトに変換します.結果 マッチするサブストリングが見つからない場合、-1に戻ります. 結果が見つかったら 正規表現が大域一致すると、対応する配列 を返します.正規表現はグローバルマッチングではない場合、最初に出現したインデックス を返します.
replace()は、文字列で指定された内容を新しいコンテンツパラメータに置き換えることができます. 最初のもの:置換された内容は、正規表現であっても良いし、文字列であっても良いし、文字列であれば、最初から検索された最初の内容だけが置き換えられます. 番目の新しい内容、文字列
正規表現は文字列のルールを定義します.プログラムはこれらの規則に基づいて文字列が規則に合っているかどうかを判断してもいいし、文字列の中の規則に合っている内容を抽出してもいいです.
正規表現を作成:
var reg = new RegExp (" "," ");
var reg = / /
構文マッチングモード:マッチングモードを設定する場合は、全部設定しなくてもいいし、1つ設定してもいいし、全設定してもいいです.設定時には順序要求がありません.
|
または[]
または[^ ]
は[a-z]
小文字[A-Z]
大文字[A-z]
任意文字[0-9]
の任意の数字 var str="Hello World!";
var reg1=/[abc]/; //false a b c
var reg2=/a|d|e/; //true a d e
var reg3=/[^e]/; //true e
var reg4=/[^Hello World!]/; //false Hello World!
var reg5=/[0-9]/; //false 0-9
例2 var str="hello world!";
var reg1=/[A-z]/; //true
var reg2=/[a-z]/; //true
var reg3=/[A-Z]/; //false
var reg4=/[A-Z]/i; //true
例3 var str="abc adc aec";
var reg1=/a[gmn]c/; //false
// a[gmn]c agc|amc|anc
var reg2=/a[bde]c/; //true
var reg3=/a[bfg]c/; //true
助数詞n{X}
は、X個のnのシーケンスを含む文字列と一致する.例えばn{X,}
Xは正の整数である.前のモードnは少なくともX回の連続的な出現で一致した.例えばn{X,Y}
XとYは正の整数です.前のモードnは連続して少なくともX回出現し、せいぜいY回で一致する.例えばn+
は、少なくとも1つのnを含むすべての文字列と一致する.n{1,}として理解できる.n*
は、ゼロまたは複数のnを含む任意の文字列と一致する.例えばn?
は、ゼロまたはnを含む任意の文字列と一致する.例えば var str = "angel" ;
var reg = /x?/ ; //true
var reg = /a?/ ; //true
var reg = /(aa)?/ ; //true
n$
は、任意の終端nの文字列と一致する.^n
は、任意の先頭nの文字列と一致する.?=n
は、任意の直後に指定された文字列nの文字列と一致する. var str="Is this all there is";
var reg = /is(?= all)/; //true
var reg = /is(?= a)/ ; //true
var reg = /is(?= l)/ ; //false
var reg = /is(?= I)/ ; //false
?!n
は、その直後に指定された文字列nがない文字列と一致する.メタ文字
説明
コメント
.
行の区切り以外に、単一の文字を検索します.正規表現では
\
を変換文字\.
として使用し、.
を\\
と表現し、\
を表現している.\w
単語の文字を検索[A-z0-9_]
に相当し、任意の文字を含む数字の下線\W
単語以外の文字を検索[^A-z0-9_]
に相当し、数字の下線を除いて\d
数字を検索[0-9]
相当です.\D
非数値文字を検索[^0-9]
相当です.\s
空白文字を検索スペースを含む
\S
空白文字以外を検索スペースなし
\b
単語の境界を合わせる\B
単語以外の境界を満たす\0
NULL文字を検索
行の区切りを検索\f
変換子を検索\r
リターンを検索\t
タブの検索\v
垂直タブの検索\xxx
八進数×で指定された文字を検索します.\xdd
16進数ddで指定された文字を検索します.\uxxxx
16進数xxxxで規定されているユニフォーム文字を検索します.例1:異なる位置のスペースを削除する
var str = " hello world " ;
console.log(str.replace(/\s/g,"")); // “helloworld”
console.log(str.replace(/^\s*/g,"")); // “hello world ”
console.log(str.replace(/\s*$/g,"")); // “ hello world”
console.log(str.replace(/^\s*|\s*$/g,"")); // “hello world”
例2:電子メールのマッチング// . @ . (2-5 )
var reg=/^\w{3,}@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/;
var email = "[email protected]" ; //true
var email = "[email protected]" ; //true
var email = "[email protected]" ; //true
var email = "[email protected]" ; //true
var email = "abc0asfabc.com.cn" ; //false
var result=reg.test(email);
console.log(result);
解析:メール形式: ( 3 ) @ . (2-5 ) . (2-5 )
正規表現:^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$
^\w{3,}
@
[A-z0-9]
(\.[A-z]{2,5}){1,2}$
を含む.例えば、qq.com
edu.com.cn
の後ろには1−2個の.xxx
方法
var str="Hello World! Hi Sian! Hello CSDN";
var result=str.search("!"); //11
var result=str.search("。"); //-1
var result=str.search(/h/); //-1 h
var result=str.search(/h/i); //0 i
var result=str.search(/h/ig); //0 i
var str="Hi Sian! Hello csdn";
var result=str.split("s"); // s
// (2) ["Hi Sian! Hello c", "dn"]
var result=str.split(""); //
// (19) ["H", "i", " ", "S", "i", "a", "n", "!", " ", "H", "e", "l", "l", "o", " ", "c", "s", "d", "n"]
var result=str.split(/s/i); // s ,
// (3) ["Hi ", "ian! Hello c", "dn"]
var str = "The rain in SPAIN stays mainly in the plain";
var result = str.match(/ain/); //
// 5
var result = str.match(/ain/g); //
// (3) ["ain", "ain", "ain"]
var result = str.match(/[0-9]/g);
// null
var str = "The rain in SPAIN stays mainly in the plain";
var result = str.replace("ain"," ");
// The r in SPAIN stays mainly in the plain
var result = str.replace(/ain/," ");
// The r in SPAIN stays mainly in the plain
var result = str.replace(/ain/g," "); //
// The r in SPAIN stays m ly in the pl
var result = str.replace(/ain/ig," "); //
// The r in SP stays m ly in the pl