exec メソッド
更新 : 2007 年 11 月
正規表現パターンを使って文字列に対して検索を実行し、検索結果を配列に格納して返します。
function exec(str : String) : Array
引数
- str
必ず指定します。検索対象とする String オブジェクトの名前またはリテラル文字列を指定します。
解説
パターンに一致する文字列が見つからなかった場合、exec メソッドは null を返します。一致する文字列が見つかった場合は、配列を返し、さらにグローバルな RegExp オブジェクトのプロパティが検索結果を反映して更新されます。配列の要素 0 には一致結果全体が、要素が 1 から n には、一致結果の中に副次的に含まれる一致の内容が格納されます。この処理は、グローバル フラグ (g) が設定されていない場合の match メソッドの処理と同じです。
正規表現でグローバル フラグが設定されている場合は、lastIndex の値で指定された位置から文字列の検索が開始されます。グローバル フラグが設定されていない場合、lastIndex の値に関係なく検索は文字列の先頭から開始されます。
exec メソッドが返す配列には、input、index、および lastIndex の 3 つのプロパティがあります。input プロパティには、検索された文字列全体が格納されます。index プロパティには、検索された文字列内の一致した部分文字列の位置が格納されます。lastIndex プロパティには、一致文字列の末尾の文字に続く位置が格納されます。
使用例
exec メソッドの使用例を次に示します。
function RegExpTest() {
var s = "";
var src = "The rain in Spain falls mainly in the plain.";
// Create regular expression pattern for matching a word.
var re = /\w+/g;
var arr;
// Loop over all the regular expression matches in the string.
while ((arr = re.exec(src)) != null)
s += arr.index + "-" + arr.lastIndex + "\t" + arr + "\n";
return s;
}