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
:
"/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ções
Specification |
---|
ECMAScript Language Specification # sec-symbol.match |
Compatibilidade com navegadores
BCD tables only load in the browser