MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Symbol.match

よく知られた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 2017 Draft (ECMA-262)
Symbol.match の定義
ドラフト  

ブラウザ実装状況

機能 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) 未サポート 未サポート 未サポート

関連情報

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

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