よく知られたSymbol.matchシンボルは文字列に対して正規表現のマッチングを指定します。この関数はString.prototype.match() メソッドによって呼ばれます。

Symbol.match のプロパティ属性
書込可能 不可
列挙可能 不可
設定可能 不可

説明

この関数はオブジェクトが正規表現の振る舞いをもつかどうか識別するためにも使用されます。例えば、String.prototype.startsWith()String.prototype.endsWith()String.prototype.includes()メソッドは最初の引数が正規表現かどうか調べます。その場合TypeErrorをスローします。現在、matchシンボルがfalse(またはFalsy値)に設定されたら、そのオブジェクトが正規表現オブジェクトとして使用されることが意図されていないことを示しています。

isRegExpチェックを無効にする

次のコードはTypeErrorをスローします。

"/bar/".startsWith(/bar/); 

// Throws TypeError, as /bar/ is a regular expression
// and Symbol.match is not modified.

しかしながら、Symbol.matchfalseに設定した場合、(matchプロパティを使用する)isRegExpチェックはオブジェクトが正規表現オブジェクトではないことを示します。結果としてstartsWithメソッドとendsWithメソッドはTypedErrorをスローしなくなります。

var re = /foo/;
re[Symbol.match] = false;
"/foo/".startsWith(re); // true
"/baz/".endsWith(re);   // false

仕様

仕様 状況 コメント
ECMAScript 2015 (6th Edition, ECMA-262)
Symbol.match の定義
標準 Initial definition.
ECMAScript Latest Draft (ECMA-262)
Symbol.match の定義
ドラフト  

ブラウザ実装状況

現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。 この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。 手助けしていただける場合は、こちらから!

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 未サポート 40 (40) 未サポート 未サポート 未サポート
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 未サポート 未サポート 40.0 (40) 未サポート 未サポート 未サポート

関連情報

ドキュメントのタグと貢献者

このページの貢献者: mdnwebdocs-bot, unarist, shide55
最終更新者: mdnwebdocs-bot,