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.
Die Symbol.match
statische Daten-Eigenschaft repräsentiert das wohlbekannte Symbol Symbol.match
. Die Methode String.prototype.match()
sucht dieses Symbol in ihrem ersten Argument, um die Methode zu finden, die verwendet wird, um eine Eingabestring gegen das aktuelle Objekt abzugleichen. Dieses Symbol wird auch verwendet, um zu bestimmen, ob ein Objekt als Regex behandelt werden sollte.
Für weitere Informationen siehe RegExp.prototype[Symbol.match]()
und String.prototype.match()
.
Probieren Sie es aus
Wert
Das wohlbekannte Symbol Symbol.match
.
Eigenschaften von Symbol.match | |
---|---|
Schreibbar | nein |
Aufzählbar | nein |
Konfigurierbar | nein |
Beschreibung
Diese Funktion wird auch verwendet, um zu identifizieren, ob Objekte das Verhalten von regulären Ausdrücken haben. Zum Beispiel prüfen die Methoden String.prototype.startsWith()
, String.prototype.endsWith()
und String.prototype.includes()
, ob ihr erstes Argument ein regulärer Ausdruck ist und werfen einen TypeError
, wenn dies der Fall ist. Wenn das match
-Symbol auf false
gesetzt ist (oder auf einen falsy Wert außer undefined
), zeigt dies an, dass das Objekt nicht als reguläres Ausdruck-Objekt verwendet werden soll.
Beispiele
Ein RegExp als kein Regex markieren
Der folgende Code wirft einen TypeError
:
"/bar/".startsWith(/bar/);
// Throws TypeError, as /bar/ is a regular expression
// and Symbol.match is not modified.
Wenn Sie jedoch Symbol.match
auf false
setzen, wird das Objekt als kein reguläres Ausdruck-Objekt betrachtet. Die Methoden startsWith
und endsWith
werden dadurch keinen TypeError
werfen.
const re = /foo/;
re[Symbol.match] = false;
"/foo/".startsWith(re); // true
"/baz/".endsWith(re); // false
Spezifikationen
Specification |
---|
ECMAScript Language Specification # sec-symbol.match |
Browser-Kompatibilität
BCD tables only load in the browser