exec メソッド
正規表現パターンを使って文字列に対して検索を実行し、検索結果を含む配列を返します。
rgExp.exec(str)
引数
- rgExp
必ず指定します。正規表現パターンおよび適用できるフラグを含む Regular Expression オブジェクトのインスタンスです。 - str
必ず指定します。検索対象とする String オブジェクトの名前またはリテラルを指定します。
解説
パターンに一致する文字列が見つからなかった場合、exec メソッドは null を返します。一致する文字列が見つかった場合は、配列を返し、さらにグローバルな RegExp オブジェクトのプロパティが検索結果を反映して更新されます。配列の要素 0 には一致結果全体が、要素が 1 から n には、一致結果の中に副次的に含まれる一致の内容が格納されます。この処理は、グローバル フラグ (g) が設定されていない場合の match メソッドの処理と同じです。
正規表現でグローバル フラグが設定されている場合は、lastIndex の値で指定された位置から文字列の検索が開始されます。グローバル フラグが設定されていない場合、lastIndex の値に関係なく検索は文字列の先頭から開始されます。
exec メソッドが返す配列には、input、index、および lastIndex の 3 つのプロパティがあります。input プロパティには、検索文字列全体が格納されます。index プロパティには、検索終了後の文字列内で一致が検出された各文字列位置が格納されます。lastIndex プロパティには、一致文字列の最後の文字に続く位置が格納されます。
使用例
次のコードは、exec メソッドの使用例です。
function RegExpTest(){
var ver = Number(ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion())
if (ver >= 5.5){ // JScript バージョンをテストします。
var src = "The rain in Spain falls mainly in the plain.";
var re = /\w+/g; // 正規表現パターンを作成します。
var arr;
while ((arr = re.exec(src)) != null)
document.write(arr.index + "-" + arr.lastIndex + "\t" + arr);
}
else{
alert("You need a newer version of JScript for this to work");
}
}
必要条件
参照
match メソッド | RegExp オブジェクト | Regular Expression Object メソッド | Regular Expression Object プロパティ | 正規表現の構文 | search メソッド | test メソッド