JavaScript RegExp exec() メソッド

定義と使用方法

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()