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
Zugriffs-Eigenschaft von RegExp
-Instanzen gibt eine Zeichenkette zurück, die 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 Ausdrucks-Literal. Die Sprache erfordert, dass die zurückgegebene Zeichenkette richtig escaped ist, so dass, wenn die source
mit einem Schrägstrich an beiden Enden verkettet wird, ein parsbares Regex-Literal gebildet wird. Zum Beispiel ist für new RegExp("/")
die source
\\/
, weil, wenn es /
erzeugt, das resultierende Literal ///
wird, was ein Zeilenkommentar ist. Ebenso werden alle Zeilenabschlusszeichen escaped, weil Zeilenabschluss-Zeichen das Regex-Literal aufbrechen würden. Für andere Zeichen gibt es keine Anforderung, solange das Ergebnis parsbar ist. Für leere reguläre Ausdrücke wird die Zeichenkette (?:)
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 Escaping
new RegExp().source; // "(?:)"
new RegExp("\n").source === "\\n"; // true, starting with ES5
Spezifikationen
Specification |
---|
ECMAScript® 2026 Language Specification # sec-get-regexp.prototype.source |