match メソッド

正規表現パターンを使って文字列に対して検索を実行し、検索結果を含む配列を返します。

stringObj.match(rgExp) 

引数

  • stringObj
    必ず指定します。検索対象とする String オブジェクトの名前または文字列リテラルを指定します。
  • rgExp
    必ず指定します。正規表現パターンおよび適用できるフラグを含む Regular Expression オブジェクトのインスタンスです。正規表現パターンおよびフラグを含む変数名または文字列リテラルを指定することもできます。

解説

パターンに一致する文字列が見つからなかった場合、match メソッドは null を返します。一致する文字列が見つかった場合は、配列を返し、さらにグローバルな RegExp オブジェクトのプロパティが検索結果を反映して更新されます。

exec メソッドが返す配列には、input、index、および lastIndex の 3 つのプロパティがあります。input プロパティには、検索文字列全体が格納されます。index プロパティには、検索終了後の文字列内で一致が検出された各文字列位置が格納されます。lastIndex プロパティには、一致文字列の最後の文字に続く位置が格納されます。

グローバル フラグ (g) が設定されていない場合、配列の要素 0 には一致結果全体が、要素が 1 から n には、一致結果の中に副次的に含まれる一致の内容が格納されます。この処理は、グローバルなフラグが設定されていない場合の exec メソッドの処理と同じです。グローバル フラグが設定されている場合、要素 0 から n には検出されたすべての一致がそれぞれ格納されます。

使用例

次のコードは、match メソッドの使用例です。

function MatchDemo(){
   var r, re;                    //変数を宣言します。
   var s = "The rain in Spain falls mainly in the plain";
   re = /ain/i;    //正規表現パターンを作成します。
   r = s.match(re);   //パターンに一致する文字列を検索します。
   return(r);         //最初に検索された "ain" を返します。
}

次のコードは、g フラグが設定されている場合の match メソッドの使用例です。

function MatchDemo(){
   var r, re;                    //変数を宣言します。
   var s = "The rain in Spain falls mainly in the plain";
   re = /ain/ig;      //正規表現パターンを作成します。
   r = s.match(re);   //パターンに一致する文字列を検索します。
   return(r);         //4 つの "ain" すべてが含まれている
// 配列を返します。
}

次のコードは、match メソッドの文字列リテラルの使用例です。

var r, re = "Spain";
r = "The rain in Spain".replace(re, "Canada");

必要条件

バージョン 3

参照

exec メソッド | RegExp オブジェクト | replace メソッド | search メソッド | String Object メソッド | test メソッド

対象: String オブジェクト