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

JavaScriptのtest()メソッドとexec()メソッドの違い

test()は入力文字列が正規表現にマッチするかどうかを判定し、ブール値(true/false)を返します。一方、exec()はマッチ結果を配列形式で返し、キャプチャグループやマッチ位置(インデックス)などの詳細情報を取得できます。

test()メソッドを使うべきケース

入力文字列が正規表現にマッチするかどうかを確認したいだけなら、RegExp.testが最適です。戻り値がブール値であるため、if文などの条件分岐で扱いやすく、シンプルな存在チェックに向いています。

exec()メソッドを使うべきケース

RegExp.execは、マッチした文字列全体だけでなく、すべてのキャプチャグループやマッチしたインデックスを含む配列形式の戻り値を返します。そのため、マッチ後にキャプチャグループの中身や位置情報を利用してさらに処理を行いたい場合に便利です。

コード例

console.log(/^([a-z]+) ([A-Z]+)$/.exec("hello WORLD"))
console.log(/^([a-z]+) ([A-Z]+)$/.test("hello WORLD"))

実行結果

[ 'hello WORLD',
  'hello',
  'WORLD',
  index: 0,
  input: 'hello WORLD',
  groups: undefined ]
true

実行結果のポイント

exec()が返す配列の最初の要素(インデックス0)には、マッチした完全な文字列が格納されます。それ以降の要素には、正規表現内の各キャプチャグループに対応する部分文字列が順番に格納されます。また、indexプロパティにはマッチ開始位置、inputプロパティには元の入力文字列が記録されます。


  1. JavaScriptにおける関数とメソッドの違いとは?わかりやすく解説

    JavaScriptにおいて、関数とメソッドは本質的には同じものです。両者の違いは、メソッドがオブジェクトのプロパティとして定義された関数であるという点にあります。つまり、独立して定義されたものを「関数」、オブジェクトに紐づけられたものを「メソッド」と呼びます。 JavaScriptの関数の基本形 まず、一般的な関数の定義方法を見てみましょう。 function functionname(param1, param2){ // 処理内容 } JavaScriptのメソッドの例 メソッドは、オブジェクトに関連付けられた関数です。次の例では、employeeオブジェクトの中にdetails

  2. PHPとJavaScriptの違いとは?特徴・実行環境・使い分けを徹底解説

    はじめに 本記事では、Web開発で広く使われる2つのプログラミング言語——PHPとJavaScriptの主な違いについて詳しく解説します。それぞれの特徴や動作環境を理解することで、プロジェクトに応じた適切な言語選択ができるようになります。 JavaScriptの特徴 フロントエンドとバックエンドの両方を担当可能:ブラウザ上のUI制御から、Node.jsを使ったサーバーサイド処理まで幅広く対応できます。 非同期処理に対応:入出力操作の完了を待たずに次の処理へ進むため、レスポンスの速いアプリケーションを構築できます。 実行環境が柔軟:ブラウザで直接実行できるほか、「Node.js」の登場以降は