RegExp.prototype.source
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Die source
-Zugriffseigenschaft von RegExp
-Instanzen gibt einen String zurück, der den Quelltext dieses regulären Ausdrucks enthält, ohne die beiden Schrägstriche auf beiden Seiten oder irgendwelche Flags.
Probieren Sie es aus
const regex1 = /fooBar/gi;
console.log(regex1.source);
// Expected output: "fooBar"
console.log(new RegExp().source);
// Expected output: "(?:)"
console.log(new RegExp("\n").source === "\\n");
// Expected output: true (starting with ES5)
// Due to escaping
Beschreibung
Konzeptionell ist die source
-Eigenschaft der Text zwischen den beiden Schrägstrichen im regulären Ausdrucksliteral. Die Sprache erfordert, dass der zurückgegebene String korrekt maskiert ist, sodass, wenn source
mit einem Schrägstrich an beiden Enden verknüpft wird, ein parsierbares Regex-Literal entsteht. Zum Beispiel, für new RegExp("/")
, ist die source
\\/
, weil, wenn es /
erzeugt, das resultierende Literal ///
wird, was ein Zeilenkommentar ist. Ähnlich werden alle Zeilentrennzeichen maskiert, weil Zeilentrennzeichen-Zeichen das Regex-Literal unterbrechen würden. Es gibt keine Anforderungen an andere Zeichen, solange das Ergebnis parsierbar ist. Für leere reguläre Ausdrücke wird der String (?:)
zurückgegeben.
Beispiele
Verwendung von source
const regex = /fooBar/gi;
console.log(regex.source); // "fooBar", doesn't contain /.../ and "gi".
Leere reguläre Ausdrücke und Maskierung
new RegExp().source; // "(?:)"
new RegExp("\n").source === "\\n"; // true, starting with ES5
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-get-regexp.prototype.source |
Browser-Kompatibilität
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
source | ||||||||||||||
"(?:)" for empty regexps | ||||||||||||||
Line breaks and slashes are escaped | ||||||||||||||
Prototype accessor property (ES2015) |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support