--- title: Symbol.match slug: Web/JavaScript/Reference/Global_Objects/Symbol/match translation_of: Web/JavaScript/Reference/Global_Objects/Symbol/match ---
O símbolo Symbol.match é conhecido por especificar a compatibilidade de uam expressão regular contra uma string. Essa função é chamada pelo método {{jsxref("String.prototype.match()")}}.
Essa função também é usada para identificar se um objeto tem o comportamento de uma expressão regular. Por exemplo, os métodos {{jsxref("String.prototype.startsWith()")}}, {{jsxref("String.prototype.endsWith()")}} e {{jsxref("String.prototype.includes()")}}, verificar se o primeiro agumento é uma expressão regular e irá lançar um {{jsxref("TypeError")}} se eles forém. Agora, se o símbolo match é configurado para false (ou um valor Falsy ), ele indica que o objeto não tem intensão de ser usado como um ojbeto de expressão regular
{{js_property_attributes(0,0,0)}}
isRegExp O seguinte código vai lançar um {{jsxref("TypeError")}}:
'/bar/'.startsWith(/bar/); // Lança um TypeError, como /bar/ é uma expressão regular // não Symbol.match não é modificado.
Entretanto, se você configurar Symbol.match para false, a verificação isRegExp (que usa a propriedade match ) que o objeto não é uma expressão regular. O método startsWith e endsWith não vão lançar um TypeError como consequência.
var re = /foo/; re[Symbol.match] = false; '/foo/'.startsWith(re); // true '/baz/'.endsWith(re); // false
| Especificação |
|---|
| {{SpecName('ESDraft', '#sec-symbol.match', 'Symbol.match')}} |
{{Compat("javascript.builtins.Symbol.match")}}