--- title: Symbol.match slug: Web/JavaScript/Reference/Global_Objects/Symbol/match tags: - ECMAScript 2015 - JavaScript - Property - Symbol translation_of: Web/JavaScript/Reference/Global_Objects/Symbol/match ---
Symbol.match
は、文字列に対して正規表現のマッチングを指定します。この関数は {{jsxref("String.prototype.match()")}} メソッドによって呼び出されます。
この関数は、オブジェクトが正規表現の動作をするかどうかを識別するためにも使用されます。たとえば、{{jsxref("String.prototype.startsWith()")}}, {{jsxref("String.prototype.endsWith()")}}, {{jsxref("String.prototype.includes()")}} メソッドは、最初の引数が正規表現であるかどうかを確認し、正規表現である場合は {{jsxref("TypeError")}} を投げます。ここで、一致
記号が false
(または偽値)に設定されている場合、そのオブジェクトが正規表現オブジェクトとして使用されることを意図していないことを示します。
{{js_property_attributes(0,0,0)}}
isRegExp
チェックを無効にする以下のコードは {{jsxref("TypeError")}} を投げます。
'/bar/'.startsWith(/bar/); // Throws TypeError, as /bar/ is a regular expression // and Symbol.match is not modified.
ただし、Symbol.match
を false
に設定すると、(match
プロパティを使用する)isRegExp
チェックは、オブジェクトが正規表現オブジェクトではないことを示します。結果として、startsWith
と endsWith
メソッドは、TypeError を投げません。
var re = /foo/; re[Symbol.match] = false; '/foo/'.startsWith(re); // true '/baz/'.endsWith(re); // false
仕様書 |
---|
{{SpecName('ESDraft', '#sec-symbol.match', 'Symbol.match')}} |
{{Compat("javascript.builtins.Symbol.match")}}