JavaScriptの正規表現でmatchの結果を変数に入れずにグループ化した値を取り出す

[2008/10/29追記]
取説 正規表現を読んでみたらRegExpのプロパティはグローバル変数だから使わない方が良いのね。やっぱりいったん変数に入れよう。

                                                                                                • -

JavaScript 第5版を読んで、いつも下のようにやってた。

var str = 'abcdefghi';
var result = str.match(/^ab(.*)hi$/);
if (result != null) {
    alert(result[1]);
}

いったんresultに入れて、もしマッチングしていたらグループ化したものを取り出すという感じ。


でも、下のようにマッチング結果を変数に一旦入れなくてもできる。

var str = 'abcdefghi';
if (str.match(/^ab(.*)hi$/)) {
    alert(RegExp.$1);
}

覚書。