を1回呼び出すと、フラグがあっても最初の一致exec
のみが返されます。ただし、正規表現には、同じ正規表現を使用するための後続の複数の呼び出しが次の一致するアイテムを返すような状態が含まれます。g
exec
MDNexec
ドキュメントから:
返される配列には、最初の項目として一致したテキストがあり、次に、キャプチャされたテキストを含む一致したキャプチャ括弧ごとに1つの項目があります
[...]
正規表現で「g」フラグを使用している場合は、execメソッドを複数回使用して、同じ文字列内の連続する一致を見つけることができます。
したがって、このコードはalert
、例の最初の2つの一致になります。
var content = '<p>[dfp:advertisement:leaderboard:750x90]</p>text here<p>[dfp:advertisement:box1:300x250]</p>';
var regX = /([a-zA-Z0-9]*):([0-9]*x[0-9]*)/g;
var match = regX.exec(content);
var match2 = regX.exec(content);
alert(match[0]);
alert(match2[0]);
他の人がすでに述べたように、代わりにmatch
文字列を使用して、複数の一致を持つ配列を返すことができます。
したがって、上記のコードと同様に、このコードはalert
例の最初の2つの一致になります。
var content = '<p>[dfp:advertisement:leaderboard:750x90]</p>text here<p>[dfp:advertisement:box1:300x250]</p>';
var regX = /([a-zA-Z0-9]*):([0-9]*x[0-9]*)/g;
var match = content.match(regX);
alert(match[0]);
alert(match[1]);