JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのexec()メソッドとは?正規表現での文字列検索の使い方を解説

exec()メソッドとは

exec()は、JavaScriptの正規表現(RegExp)メソッドの一つです。文字列の中から指定したパターンを検索し、マッチしたテキストをオブジェクトとして返します。同じく正規表現メソッドであるtest()がtrue/falseという真偽値を返すのに対し、exec()はマッチした文字列や位置などの詳細情報を持つオブジェクトを返す点が大きな違いです。パターンが見つからなかった場合はnullが返されます。

戻り値のオブジェクトには、obj[0]でマッチした文字列そのものを、obj.indexで文字列内のマッチ開始位置(インデックス番号)を取得できます。

例1:パターン「est」を検索する

次の例では、パターン「est」をexec()メソッドで検索しています。対象のテキスト全体を走査した結果、マッチしたパターンがオブジェクトとして返され、その内容と位置が出力されます。

<html>
<body>
<script>
var obj = /est/.exec("Tutorix is the best e-learning platform");
document.write(
"The object is " + obj[0] + " and its position is " + obj.index);
</script>
</body>
</html>

出力結果

The object is est and its position is 16

例2:パターン「x」を検索する

次の例では、パターン「x」をexec()メソッドで検索しています。この場合も同様に、マッチした文字列とその位置情報がオブジェクトとして返されます。「Tutorix」という単語内の「x」がヒットしていることがわかります。

<html>
<body>
<script>
var obj = /x/.exec("Tutorix is the best e-learning platform");
document.write(
"The object is " + obj[0] + " and its position is " + obj.index);
</script>
</body>
</html>

出力結果

The object is x and its position is 6

補足:gフラグとの組み合わせ

正規表現に「g(グローバル検索)」フラグを付けてexec()を使用すると、同じRegExpオブジェクトに対して繰り返しexec()を呼び出すたびに、前回のマッチ位置(lastIndexプロパティ)の続きから検索が行われます。これにより、文字列内のすべてのマッチ箇所を順番に取得できるようになります。なお、gフラグがない場合は、何度呼び出しても常に最初のマッチ結果が返される点に注意してください。

  1. JavaScriptのtest()メソッドとは?使い方をサンプル付きで解説

    JavaScriptのtest()メソッドは、正規表現(RegExp)に属するメソッドの一つです。対象となる文字列の中に、指定したパターンが存在するかどうかを検索し、その結果に応じてtrueまたはfalseのブール値を返します。パターンが見つかればtrue、見つからなければfalseとなります。また、test()メソッドは大文字と小文字を区別するという重要な特徴を持っています。ここでは、実際のコード例を使いながら、test()メソッドの使い方を詳しく見ていきましょう。 基本構文 test()メソッドは、以下のように正規表現リテラルに対して呼び出して使用します。 /パターン/.test(検索対象

  2. JavaScriptのWeakMapでclear()メソッドを使う方法とは?

    WeakMapのclear()メソッドとはWeakMapオブジェクトのclear()メソッドは、そのWeakMapに格納されているすべてのキーと値のペアを一括で削除するためのメソッドです。しかし、このメソッドは現在のECMAScriptの仕様からは削除されています。そのため、標準のWeakMapに対して直接clear()を呼び出すことはできません。とはいえ、WeakMapオブジェクトをラップするクラスを作成し、clear()メソッドに対応した処理を追加することで、同様の機能を簡単に実現できます。実装例:clear()メソッドを持つWeakMapラッパークラスclass ClearableWea