--- 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")}}