【JSリファレンス】RegExp.prototype[@@match]()

更新日:2024/06/14

RegExp.prototype[@@match]()は、RegExpオブジェクト(RegExpコンストラクターのインスタンス)プロトタイプチェーンに組み込まれるメソッドです。

@@matchは仕様上の表記です。
プログラムコード上では、Symbol.match に置き換えられます。

RegExp.prototype[Symbol.match]()は、引数で与えられた文字列に対して正規表現のマッチング処理を行い、結果を返します。

gフラグが指定されている場合、結果はマッチした全ての文字列がセットされた配列です。

指定されていない場合はRegExp.prototype.exec()と同等の処理が呼び出されます。
そのため、最初に一致した文字列とキャプチャグループがセットされた配列を返します。

 

■構文

RegExp.prototype [ Symbol.match ] ( string )
  1. string: 解析対象の文字列
gフラグが指定されている場合、マッチした全ての文字列がセットされた配列。
指定されていない場合は、最初に一致した文字列とキャプチャグループおよび幾つかのプロパティがセットされた配列。

一致しないときは null。

 

■使用例

const rg1 = /(\d)(\d)/g;
const rg2 = /(\d)(\d)/;

const t = "ab12ab34c";

console.log( rg1[Symbol.match]( t ) );
  // [ '12', '34' ]
console.log( rg2[Symbol.match]( t ) );
  // [ '12', '1', '2', 
  //   index: 2, input: 'ab12ab34c', groups: undefined ]

 

■備考

String.prototype.match()の引数にRegExpオブジェクトを指定したとき、このメソッドが呼び出されます。
String.prototype.match()は、その結果をそのまま返します。

更新日:2024/06/14

書いた人(管理人):けーちゃん

スポンサーリンク

記事の内容について

null

こんにちはけーちゃんです。
説明するのって難しいですね。

「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。

裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。

掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。

ご意見、ご指摘はこちら。
https://jsref.affi-sapo-sv.com/info.php

 

このサイトは、リンクフリーです。大歓迎です。