JavaScript の正規表現
文法
定義
JavaScript で正規表現を定義するには、<%XXX%>
var reg=new RegExp( のような文字列を定義します。 ' <%[^%>]+%>','g');
2. リテラル
var reg=/<%[^%>]%>/ g;
g: グローバル、全文検索、デフォルトの検索は最初の結果を検索してから停止しますi: 大文字と小文字を区別しません、デフォルトでは大文字と小文字が区別されます
m: 複数行、複数行検索 (^ と $ の意味を変更すると、文字列全体の先頭と末尾だけでなく、任意の行の行頭と末尾でそれぞれ一致します) メタ文字すべてのメタ文字に特定の意味があるわけではありません。分類を見てください
定義済みの特殊文字 水平タブ文字r キャリッジリターン文字 n ラインフィード文字 f フォームフィード文字 cX X (Ctrl+X) に対応する制御文字
v 垂直タブ文字
原則として、通常の文字は1文字に対応し、[]で囲んで[]全体が1文字に対応します。
alert(/ruby/.test("ruby"));//true
alert(/[abc]/.test("a"));//true
などalert(/[abc]/.test("b"));//true
alert(/[abc]/.test("c"));//true
alert( " コウモリ、ネコ、fAt コウモリ、faT ネコ".match(/[bcf]at/gi));//bat,Cat,fAt,bat,faT,cat
negative Xiang クラス
も括弧内で大騒ぎし、前にメタキャラクターを追加してそれを否定し、括弧内の文字が一致できないことを示します。
alert(/[^abc]/.test("a"));//false
alert(/[^abc]/.test("b"));// false
alert(/[^abc]/.test("6"));//true
alert(/[^abc]/.test("gg"));//true
Scope クラス
は依然として角括弧内で大騒ぎします。一致するものが多すぎたり、種類が同じだったりする場合がありますが、すべてを入力するのは面倒です。真ん中に横線が入っているのが特徴です。
複合クラス
は依然として角括弧内で大騒ぎします。角括弧を使用して、さまざまな種類の単一文字を一致させることができます。
alert(/[a-f]/.test("b"));//true
alert(/[a-f]/.test("k"));//false
alert(/[a-z]/.test("h"));//true
alert(/[A-Z]/.test("gg"));//false
alert( /[^H-Y]/.test("G"));//true
alert(/[0-9]/.test("8"));//true
alert(/ [^7-9]/.test("6"));//true
alert(/[a-m1-5n]/.test("a"))//true
alert(/[a-m1-5n]/.test("3"))//true
alert(/[a-m1-5n]/.test(a))//true
alert(/[a-m1-5n]/.test("r"))//false
定義済みクラス
文字説明と同等
[^nr] 改行と復帰を除く任意の文字
d [0-9] 数字
D [^0-9] 数字以外の文字
s [tnx0Bfr] 空白文字
S [^ tnx0Bfr] 空白以外の文字
w [a-zA-Z_0-9] 単語文字 (すべての文字)
W [^a-zA-Z_0-9] 単語以外の文字
alert(/d/.test("3 "))//true
alert(/d/.test("w"))//false
alert(/D/.test("w"))//true
alert(/w/.test("w"))//true
alert(/w/.test("SI"))//false
alert(/W/.test(" " ))//true
alert(/s/.test(" "))//true
alert(/S/.test(" "))//false
alert( / S/.test("正"))//true
alert(/./.test("美"))//true
alert(/./.test(" ")) / /true
alert(/./.test(a))//true
正規表現をサポートする String オブジェクトのメソッド
1. search() メソッド;
このメソッドは、文字列内の指定された部分文字列を取得するか、正規表現に一致する文字列を取得するために使用されます。
基本構文: stringObject.search(regexp);
@param パラメーター regexp は、stringObject で取得する必要がある文字列にすることも、取得する必要がある RegExp オブジェクトにすることもできます。
@return (戻り値) 正規表現オブジェクトに一致する stringObject 内の最初の部分文字列の開始位置。一致する部分文字列が見つからない場合は、-1 が返されます。
注: search() メソッドはグローバル一致を実行せず、フラグ g を無視し、regexp オブジェクトの lastIndex 属性を持たず、常に開始されます。文字列から 開始位置で検索する場合、常に stringObject と一致する最初の位置が返されます。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <button onclick="myFunction()">点击</button> <p id="demo"></p> <script> function myFunction() { var str = "Visit W3cSchool!"; var n = str.search(/3c/i); document.getElementById("demo").innerHTML = n; } </script> </body> </html>
2. match() メソッド;
このメソッドは、文字列内の指定された値を取得するか、1 つ以上の正規表現の一致を検索するために使用されます。このメソッドは、indexOf() または lastIndexOf(); に似ていますが、文字列の位置ではなく、指定された値を返します。
stringObject.match(searchValue) または stringObject.match(regexp)
@ param (パラメータ)
searchValue は文字列の値を取得する必要があります
regexp: パターンに一致する必要がある RegExp オブジェクト。
@return(戻り値) は、成功した一致の配列を格納します。グローバルに一致する場合は、配列を返します。一致するものが見つからない場合は、null が返されます。返される配列には 3 つの要素があり、最初の要素には一致するテキストが格納され、index 属性は一致するテキストを示します。 input 属性は stringObject オブジェクトへの参照を宣言します。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <button onclick="myFunction()">点击</button> <p id="demo"></p> <script> function myFunction() { var str = "hello world"; var n = str.match("world"); document.getElementById("demo").innerHTML = n; } </script> </body> </html>
3. replace() メソッド:
このメソッドは、文字列内の一部の文字を他の文字に置き換えたり、通常の文字列に一致する部分文字列を置き換えたりするために使用されます。式;
基本構文: stringObject.replace(regexp/substr,replacement);
@param (パラメータ)
置換パターンを必要とする文字列または RegExp オブジェクト。
置換: 文字列の値、置換されるテキスト、または置換テキストを生成する関数。
@return(戻り値) 置換後の新しい文字列を返します
注: 文字列の stringObject の replace() メソッドは、検索と置換の操作を実行する 2 つの置換モードがあります。通常の一致パターンの場合は、グローバル置換を表す修飾子 g を追加できます。それ以外の場合は、最初に一致する文字列のみを置換します。
1. test() メソッド:このメソッドは、文字列が特定のパターンに一致するかどうかを検出するために使用されます。 基本構文: RegExpObject.test(str);
@param (パラメーター) str が必要です。 string; @return (戻り値) 文字列 str に RegExpObject に一致するテキストが含まれている場合は true を返し、それ以外の場合は false を返します。
このメソッドは、正規表現の一致を取得するために使用されます。文字列内の式。 基本構文: RegExpObject.exec(string)@param (パラメータ): string [必須] 取得する文字列。 @return (戻り値): 一致する結果が見つからない場合、戻り値は null になります。注: 返された配列の最初の要素は正規表現 Text と一致します。このメソッドも同様です。 2 つの属性を返します。index 属性は、一致するテキストの最初の文字の位置を宣言します。このメソッドがグローバルでない場合、返される配列は、() によって返される配列と同じです。方法は同じです。 りー