JavaScriptのmatchの戻り値

JavaScriptのmatchは正規表現に合致した文字列を配列で返します。
「g」を付けない場合と「g」を付ける場合で内容が変わります。

gを付けない場合 gを付ける場合
0個目 合致した部分全体
1個目 1個目の括弧で括られた部分
2個目 2個目の括弧で括られた部分
0個目 最初に合致した部分全体
1個目 2番目に合致した部分全体

gを付けない場合のサンプル

str="xayxbyxcy";
ret=str.match(/(x.)y/);

ret[0]=”xay”
ret[1]=”xa”

「x□y」という文字列を探しています。
gがないので一つ見つけたら終わりです。
戻り値の0個目は合致した部分全体です。「xay」になります。
戻り値の1個目は合致した部分のうち括弧に挟まれた部分です。「(xa)y」と見て「xa」になります。

gを付ける場合のサンプル

str="xayxbyxcy";
ret=str.match(/(x.)y/g);

ret[0]=”xay”
ret[1]=”xby”
ret[2]=”xcy”

上のサンプルと同じく「x□y」という文字列を探しています。
gがあるので合致する文字列をすべて見付けます。
戻り値の0個目は最初に合致した文字列です。
戻り値の1個目は2番目に合致した文字列です。
戻り値の2個目は3番目に合致した文字列です。
括弧に挟まれた部分を返すようなことはありません。

コメント

タイトルとURLをコピーしました