JavaScript RegExp exec() メソッド
- 前ページ compile()
- 次のページ test()
- 上一层に戻る JavaScript RegExpリファレンスマニュアル
定義と使用方法
exec()
メソッドは、文字列内のマッチング項目をテストします。
これは一般的なマッチングパターンです。
マッチングが見つかった場合、結果配列を返します。見つからない場合は、 null
。
例
例1
文字列内で文字「e」を検索します:
let text = "The best things in life are free"; let result = /e/.exec(text);
例2
文字列内で「Hello」および「W3School」を全ての範囲で検索します:
let text = "Hello world!"; // "Hello"を検索 let result1 = /Hello/.exec(text); // "W3School"を検索 let result2 = /W3School/.exec(text);
構文
regexp.exec(の属性 lastIndex で指定された文字の位置から検索を開始するという意味です。)
パラメータ
パラメータ | 説明 |
---|---|
の属性 lastIndex で指定された文字の位置から検索を開始するという意味です。 | 必須です。検索する文字列。 |
返り値
タイプ | 説明 |
---|---|
配列 | マッチングが見つかった場合、マッチングテキストを含む配列が含まれます。見つからない場合は null を返します。 |
技術的詳細
返り値
配列で、マッチング結果を保存します。マッチングが見つからない場合は、値が null
以下では、返される配列の形式について説明します。
をスローします。
タイプ | 説明 |
---|---|
TypeError | このメソッドを呼び出すオブジェクトが RegExp でない場合、この例外をスローします。 |
説明
すべての RegExp モードマッチメソッド String モードマッチメソッドの中で、exec()
の機能が最も強力です。これは一般的なメソッドで、 RegExp.test()、String.replace() および String.match() が複雑です。
exec()
を検索する文字列 の属性 lastIndex で指定された文字の位置から検索を開始するという意味です。から正規表現 regexp 一致するテキストです。もし exec()
一致するテキストが見つかった場合、結果配列を返します。見つからない場合は、 null
この配列の第0要素は、式に一致するテキストです。第1要素は、 regexp の第2子表現にマッチするテキスト(存在する場合)です。 regexp の第1子表現にマッチするテキスト(存在する場合)を返します。第2要素は、exec()
の第2子表現にマッチするテキストを指します。これ以降、通常、配列のlength属性は配列の要素数を宣言します。配列の要素とlength属性に加えて、 の属性 lastIndex で指定された文字の位置から検索を開始するという意味です。のindex属性は、マッチングテキストの最初の文字の位置を宣言します。input属性は、 exec()
メソッドを呼び出す場合、 String.match() メソッドを呼び出す場合、返される配列は呼び出されたメソッドと同じです。
メソッドを呼び出す場合、返される配列は呼び出されたメソッドと同じです。 exec()
を非グローバルパターンの regexp メソッドを呼び出すと、検索を行い、上記の結果を返します。ただし、exec()
がグローバル正規表現である場合、 regexp の動作は少し複雑です。それは、 の属性 lastIndex で指定された文字の位置から検索を開始するという意味です。 string regexp の lastIndex 属性をマッチングテキストの最初の文字の位置に設定します。これは、繰り返し呼び出して exec()
メソッドを使用して、文字列内のすべてのマッチングテキストを巡回します。exec() がマッチングテキストを見つけることができなくなった場合、 null
属性 lastIndex をリセットします。新しい文字列を検索し始める前に、新しい文字列で一度パターンマッチが完了したら、手動で lastIndex 属性を 0 にリセットする必要があります。
注意して、どの方法でも、 regexp がグローバルモードであるかどうかを示しています。exec()
は、返される配列に詳細を追加します。これが exec()
および String.match() の違いは、後者はグローバルモードで返される情報が非常に少ないことです。実際には、ループ内で繰り返し呼び出す exec()
メソッドは、グローバルパターンの完全なパターンマッチ情報を取得する唯一の方法です。
ブラウザサポート
exec()
ECMAScript1(ES1)の特性です。
すべてのブラウザは完全にES1(JavaScript 1997)をサポートしています:
Chrome | IE | Edge | Firefox | Safari | Opera |
---|---|---|---|---|---|
サポート | サポート | サポート | サポート | サポート | サポート |
正規表現検索メソッド
JavaScriptでは、正規表現のテキスト検索は異なる方法で完了できます。
使用方法パターン(pattern)正規表現として、これらは最も常用される方法です:
例 | 説明 |
---|---|
text.match(パターン) | 文字列メソッド match() |
text.search(パターン) | 文字列メソッド search() |
パターン.exec(text) | RexExp メソッド exec() |
パターン.test(text) | RexExp メソッド test() |
- 前ページ compile()
- 次のページ test()
- 上一层に戻る JavaScript RegExpリファレンスマニュアル