Baseline Widely available
Die statische Daten-Eigenschaft Symbol.match
repräsentiert das bekannte Symbol Symbol.match
. Die Methode String.prototype.match()
verwendet dieses Symbol beim ersten Argument, um die Methode zu bestimmen, die verwendet wird, um eine Eingabe-Zeichenfolge mit dem aktuellen Objekt abzugleichen. Dieses Symbol wird auch verwendet, um festzustellen, ob ein Objekt als Regex behandelt werden sollte.
Für weitere Informationen siehe RegExp.prototype[Symbol.match]()
und String.prototype.match()
.
const regexp = /foo/;
// console.log('/foo/'.startsWith(regexp));
// Expected output (Chrome): Error: First argument to String.prototype.startsWith must not be a regular expression
// Expected output (Firefox): Error: Invalid type: first can't be a Regular Expression
// Expected output (Safari): Error: Argument to String.prototype.startsWith cannot be a RegExp
regexp[Symbol.match] = false;
console.log("/foo/".startsWith(regexp));
// Expected output: true
console.log("/baz/".endsWith(regexp));
// Expected output: false
Wert
Das bekannte Symbol Symbol.match
.
Diese Funktion wird auch verwendet, um festzustellen, ob Objekte das Verhalten von regulären Ausdrücken haben. Beispielsweise 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 jedoch das match
-Symbol auf false
(oder einen falschen Wert auÃer undefined
) gesetzt ist, zeigt es an, dass das Objekt nicht als reguläres Ausdrucksobjekt verwendet werden soll.
Der folgende Code wird einen TypeError
werfen:
"/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 Ausdrucksobjekt betrachtet. Die Methoden startsWith
und endsWith
werden infolgedessen keinen TypeError
werfen.
const re = /foo/;
re[Symbol.match] = false;
"/foo/".startsWith(re); // true
"/baz/".endsWith(re); // false
Spezifikationen Browser-Kompatibilität Siehe auch
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4