JavaScript RegExp オブジェクト
正規(guī)表現(xiàn)とは何ですか?
正規(guī)表現(xiàn)は文字のパターンオブジェクトを記述します。
テキストを取得する場(chǎng)合、パターンを使用して取得する內(nèi)容を説明できます。 RegExp はこのパターンです。
簡(jiǎn)単なパターンは単一の文字にすることができます。
より複雑なパターンにはより多くの文字が含まれており、解析、形式チェック、置換などに使用できます。
文字列內(nèi)の検索位置や検索する文字の種類などを指定できます。
JavaScript は、正規(guī)表現(xiàn)に関連する操作と関數(shù)を完了するための RegExp オブジェクトを提供します。各正規(guī)表現(xiàn)パターンは RegExp インスタンスに対応します
RegExp オブジェクトのインスタンスを作成するには 2 つの方法があります。
RegExp の明示的なコンストラクターを使用します。構(gòu)文は次のとおりです: new RegExp("pattern"[,"flags"])。
RegExp の暗黙的コンストラクターをプレーンテキスト形式で使用します: /pattern/[flags]。
pattern 部分は、使用される正規(guī)表現(xiàn)パターンのテキストであり、これは必須です。最初の方法では、パターン部分は JavaScript 文字列の形式で存在し、二重引用符または一重引用符で囲む必要があります。2 つ目の方法では、パターン部分は 2 つの「/」でネストされており、引用符は使用できません。 。
flags 部分は、正規(guī)表現(xiàn)のフラグ情報(bào)を設(shè)定します (オプション)。フラグ部分が設(shè)定されている場(chǎng)合、最初の方法では文字列の形式で存在し、2 番目の方法では最後の「/」文字の直後のテキストの形式で存在します。 flags には、次のフラグ文字を組み合わせて指定できます。
g はグローバルフラグです。このフラグが設(shè)定されている場(chǎng)合、テキストに対する検索と置換の操作は、テキストの一致するすべての部分に影響します。このフラグが設(shè)定されていない場(chǎng)合は、最も古い一致のみが検索され、置換されます。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> <script type="text/javascript"> var myString="這是第一個(gè)正則表達(dá)式的例子"; var myregex = new RegExp("一個(gè)"); // 創(chuàng)建正則表達(dá)式 if (myregex.test(myString)){ document.write("找到了指定的模式!"); } else{ document.write("未找到指定的模式。"); } </script> </head> <body> </body> </html>
RegExp 修飾子
g はグローバルシンボルです。このフラグが設(shè)定されている場(chǎng)合、テキストに対する検索と置換の操作は、テキストの一致するすべての部分に影響します。このフラグが設(shè)定されていない場(chǎng)合は、最も古い一致のみが検索され、置換されます。
i は大文字と小文字を無視するフラグです。このフラグが設(shè)定されている場(chǎng)合、一致比較を行うときに大文字と小文字が無視されます。
m は複數(shù)行のフラグです。このフラグが設(shè)定されていない場(chǎng)合、メタキャラクタ「^」は検索文字列全體の先頭のみと一致し、メタキャラクタ「$」は検索文字列の末尾のみと一致します。このフラグが設(shè)定されている場(chǎng)合、「^」は検索文字列の「n」または「r」の後の位置(次の行の先頭)にも一致し、「$」も検索文字列に一致します。 「n」または「r」の後 (つまり、次の行の終わり)。 RegExp オブジェクトのプロパティは、靜的プロパティとインスタンス プロパティに分けられます。
1 靜的屬性
(1) インデックス屬性。これは、現(xiàn)在の表現(xiàn)パターンの最初に一致するコンテンツの開始位置です (0 から數(shù)えます)。初期値は -1 で、一致が成功するたびにインデックス屬性が変更されます。
(2) 入力屬性。処理対象の現(xiàn)在の文字列を返します。これは $_ と省略できます。初期値は空の文字列 "" です。
(3)lastIndex 屬性。現(xiàn)在の表現(xiàn)パターンが最初に一致するコンテンツ內(nèi)の最後の文字の次の位置です。カウントは 0 から始まります。初期値は -1 で、検索を継続することを意味します。一致するたびに開始位置から開始され、それに応じて lastIndex 屬性値が変更されます。
(4)lastMatch 屬性?,F(xiàn)在の式パターンの最後に一致する文字列です。$& と省略できます。初期値は空の文字列「」です。 lastMatch 屬性の値は、一致が成功するたびに変化します。
(5)lastParen 屬性。式パターン內(nèi)に囲まれた部分一致がある場(chǎng)合、それは現(xiàn)在の式パターン內(nèi)の最後の部分一致と一致する部分文字列であり、$+ と省略できます。初期値は空の文字列「」です。 lastParen 屬性の値は、一致が成功するたびに変化します。
(6)leftContext 屬性?,F(xiàn)在の式パターンで最後に一致する文字列の左側(cè)にあるすべての文字列であり、$` と省略できます (「'」はキーボードの「Esc」の下にある逆引用符です)。初期値は空文字列「」です。一致が成功するたびに、そのプロパティ値が変化します。
(7) rightContext 屬性。これは、現(xiàn)在の式パターンで最後に一致する文字列の右側(cè)にあるすべてのものであり、$' と省略できます。初期値は空文字列「」です。一致が成功するたびに、そのプロパティ値が変化します。
(8)$1…$9 の屬性。これらのプロパティは読み取り専用です。式パターン內(nèi)に囲まれたサブマッチがある場(chǎng)合、$1...$9 屬性値は、それぞれ最初から 9 番目のサブマッチによってキャプチャされた?jī)?nèi)容になります。 9 個(gè)を超える部分一致がある場(chǎng)合、$1...$9 屬性はそれぞれ最後の 9 個(gè)の部分一致に対応します。式パターンでは、括弧で囲まれたサブマッチをいくつでも指定できますが、RegExp オブジェクトは最後の 9 つのサブマッチの結(jié)果のみを保存できます。 RegExp インスタンス オブジェクトの一部のメソッドによって返される結(jié)果配列では、括弧內(nèi)のすべての部分一致結(jié)果を取得できます。
2 インスタンス屬性
(1) グローバル屬性。 RegExp オブジェクト インスタンスの作成時(shí)に指定されたグローバル フラグ (g) のステータスを返します。 RegExp オブジェクト インスタンスの作成時(shí)に g フラグが設(shè)定されている場(chǎng)合、このプロパティは True を返します。それ以外の場(chǎng)合、デフォルト値は False を返します。
(2)ignoreCase 屬性。 RegExp オブジェクト インスタンスの作成時(shí)に指定されたignoreCase フラグ (i) のステータスを返します。 RegExp オブジェクト インスタンスの作成時(shí)に i フラグが設(shè)定されている場(chǎng)合、このプロパティは True を返します。それ以外の場(chǎng)合、デフォルト値は False を返します。
(3) multiLine 屬性。 RegExp オブジェクト インスタンスの作成時(shí)に指定された multiLine フラグ (m) のステータスを返します。 RegExp オブジェクト インスタンスの作成時(shí)に m フラグが設(shè)定されている場(chǎng)合、このプロパティは True を返します。それ以外の場(chǎng)合、デフォルト値は False を返します。
(4) ソース屬性。 RegExp オブジェクト インスタンスの作成時(shí)に指定された式テキスト文字列を返します。
RegExpオブジェクトメソッド
1テストメソッド
構(gòu)文形式はtest(str)です。このメソッドは、RegExp オブジェクト インスタンスの作成時(shí)に指定された式パターンが文字列內(nèi)に存在するかどうかを確認(rèn)し、存在する場(chǎng)合は True を返し、存在しない場(chǎng)合は False を返します。一致が見つかった場(chǎng)合、RegExp オブジェクト內(nèi)の関連する靜的プロパティが更新されて、一致が反映されます。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> </head> <body> <script> var str="Is this all there is?"; var patt1=/is/gi; document.write(str.match(patt1)); </script> </body> </html>
2 execメソッド
構(gòu)文形式はexec(str)です。このメソッドは、RegExp オブジェクト インスタンスの作成時(shí)に指定された式パターンを使用して文字列を検索し、検索結(jié)果を含む配列を返します。正規(guī)表現(xiàn)にグローバル フラグ (g) が設(shè)定されている場(chǎng)合は、RegExp オブジェクトの lastIndex 屬性値で指定された位置から毎回 exec メソッドと test メソッドを複數(shù)回呼び出すことで、文字列內(nèi)を継続的に検索できます。
グローバル フラグ (g) が設(shè)定されていない場(chǎng)合、exec メソッドと test メソッドは RegExp オブジェクトの lastIndex 屬性値を無視し、文字列の先頭から検索を開始します。
exec メソッドで一致が見つからない場(chǎng)合、戻り値は null になります。一致が見つかった場(chǎng)合は、配列が返され、その一致を反映するように RegExp オブジェクト內(nèi)の関連する靜的プロパティが更新されます。返された配列の要素 0 には完全な一致結(jié)果が含まれ、要素 1 ~ n は式パターンで定義された各部分一致の結(jié)果です。
exec メソッドによって返される配列には、input、index、lastIndex という 3 つの屬性があります。
入力屬性は、検索された文字列全體です。
index 屬性は、検索文字列全體內(nèi)の一致する位置を參照します。
lastIndex 屬性は、一致した部分文字列の最後の文字の次の文字位置を參照します。
りー