Symbol.match

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.

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 String.prototype.match().

Experimente

Descrição

Essa função também é usada para identificar se um objeto tem o comportamento de uma expressão regular. Por exemplo, os métodos String.prototype.startsWith(), String.prototype.endsWith() e String.prototype.includes(), verificar se o primeiro agumento é uma expressão regular e irá lançar um 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

Property attributes of Symbol.match
Writable no
Enumerable no
Configurable no

Exemplos

Desativando a verificação isRegExp

O seguinte código vai lançar um TypeError:

js
"/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.

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

Especificações

Specification
ECMAScript Language Specification
# sec-symbol.match

Compatibilidade com navegadores

BCD tables only load in the browser

Veja também