トップページ > JavaScriptリファレンス > RegExp.$1-$9

★JavaScriptリファレンス

RegExp.$1-$9 …… 正規表現に含まれる括弧内のパターンにマッチした部分を返す
Internet Explorer Google Chrome Safari Firefox Opera
広告

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には何も代入されません。

■構文・引数・戻り値

構文
RegExp.$1
RegExp.$2
RegExp.$3
RegExp.$4
RegExp.$5
RegExp.$6
RegExp.$7
RegExp.$8
RegExp.$9
戻り値
正規表現に含まれるn番目の括弧内のパターンにマッチした部分

■使用例

HTML + JavaScriptソース

<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>
↓↓↓

ブラウザ上の表示

■関連項目

RegExp.global …… グローバルマッチかどうかを返す
RegExp.ignoreCase …… 大文字と小文字の違いを無視するかどうかを返す
RegExp.multiline …… 改行コードを認識して複数行として扱うかどうかを返す

RegExp.source …… 正規表現のソース(指定内容)を返す
RegExp.input …… 検索対象の文字列を設定・参照する
RegExp.lastIndex …… 検索で一致した部分に続く次の文字の開始位置を返す
RegExp.lastParen …… 最後に ( ~ ) の条件にマッチした文字列を返す
RegExp.$1-$9 …… 正規表現に含まれる括弧内のパターンにマッチした部分を返す

RegExp.lastMatch …… 最後にマッチした文字列を返す
RegExp.leftContext …… 直前にマッチした部分の左側の文字列を返す
RegExp.rightContext …… 直前にマッチした部分の右側の文字列を返す

RegExp.test() …… 指定した文字列が正規表現にマッチするかどうかを返す
RegExp.exec() …… 指定した文字列に対して検索を実行する
RegExp.compile() …… 正規表現の内容を設定する
広告
Sponsors
広告
MuuMuu Domain!
ドメイン取るならお名前.com
現役エンジニアのオンライン家庭教師【CodeCamp】
サイトに広告を掲載してお小遣いが稼げる!【A8.net】
Node.jsコース
はじめてのプログラミングコース
▲ページ先頭へ
HTMLクイックリファレンスについて
© HTMQ