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

js
const regex = /fooBar/gi;

console.log(regex.source); // "fooBar", doesn't contain /.../ and "gi".

Leere reguläre Ausdrücke und Escaping

js
new RegExp().source; // "(?:)"

new RegExp("\n").source === "\\n"; // true, starting with ES5

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-get-regexp.prototype.source

Browser-Kompatibilität

Siehe auch