RegExpオブジェクトの$1-$9は、正規表現に含まれる括弧内のパターンにマッチした部分を返します。
RegExpオブジェクトにおける$1、$2、$3、$4、$5、$6、$7、$8、$9は、特別な変数となります。
1~9の数値は、1番目の括弧・2番目の括弧・3番目の括弧…という具合に括弧が現れる順番に対応しています。
例えば、/(.*)(ball)(s)(.*)/ という正規表現に対して「Baseball News」という文字列をマッチさせる場合、
1番目の括弧 (.*) は「任意の文字列」というパターンなので「Base」の部分がマッチします。
2番目の括弧 (ball) は「”ball”という文字列」というパターンなので「ball」の部分がマッチします。
3番目の括弧 (s) は「半角スペースなど」というパターンなので「Baseball」と「News」の間の半角スペースの部分がマッチします
4番目の括弧 (.*) は「任意の文字列」というパターンなので「News」の部分がマッチします。
そして、特別な変数である$1、$2、$3、$4には、それぞれ「Base」「ball」「 」「News」が代入されます。
仮に、/(.*)(ball)(s)(.*)/ という正規表現はそのままに、対象文字列を「Volleyball Player」に変更した場合、
$1、$2、$3、$4には、それぞれ「Volley」「ball」「 」「Player」が代入されます。
仮に、正規表現を /(.*)ball (.*)/ と変更して「Volleyball Player」という文字列をマッチさせた場合、
$1、$2には、それぞれ「Volley」「Player」が代入され、$3、$4には何も代入されません。
<script> var reObj = new RegExp(/(.*)(ball)(s)(.*)/); reObj.test("Baseball News"); document.write("<h5>正規表現 /(.*)(ball)(s)(.*)/ で、文字列 Baseball News の場合</h5>"); document.write("<div>$1の値:「" + RegExp.$1 + "」</div>"); document.write("<div>$2の値:「" + RegExp.$2 + "」</div>"); document.write("<div>$3の値:「" + RegExp.$3 + "」</div>"); document.write("<div>$4の値:「" + RegExp.$4 + "」</div>"); reObj.test("Volleyball Player"); document.write("<h5>正規表現 /(.*)(ball)(s)(.*)/ で、文字列 Volleyball Player の場合</h5>"); document.write("<div>$1の値:「" + RegExp.$1 + "」</div>"); document.write("<div>$2の値:「" + RegExp.$2 + "」</div>"); document.write("<div>$3の値:「" + RegExp.$3 + "」</div>"); document.write("<div>$4の値:「" + RegExp.$4 + "」</div>"); var reObj = new RegExp(/(.*)ball (.*)/); reObj.test("Volleyball Player"); document.write("<h5>正規表現 /(.*)ball (.*)/ で、文字列 Volleyball Player の場合</h5>"); document.write("<div>$1の値:「" + RegExp.$1 + "」</div>"); document.write("<div>$2の値:「" + RegExp.$2 + "」</div>"); document.write("<div>$3の値:「" + RegExp.$3 + "」</div>"); document.write("<div>$4の値:「" + RegExp.$4 + "」</div>"); </script>
“);
document.write(“
“);
document.write(“
“);
document.write(“
“);
reObj.test(“Volleyball Player”);
document.write(“
“);
document.write(“
“);
document.write(“
“);
document.write(“
“);
document.write(“
“);
var reObj = new RegExp(/(.*)ball (.*)/);
reObj.test(“Volleyball Player”);
document.write(“
“);
document.write(“
“);
document.write(“
“);
document.write(“
“);
document.write(“
“);