Signatur
Beschreibung
Die source-Accessor-Eigenschaft 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 und ohne jegliche Flags.
Konzeptionell ist die source-Eigenschaft der Text zwischen den beiden Schrägstrichen im Regex-Literal. Die Sprache verlangt, dass der zurückgegebene String korrekt escaped ist, sodass beim Zusammenfügen von source mit einem Schrägstrich auf beiden Seiten ein parsebares Regex-Literal entsteht. Zum Beispiel ist für new RegExp("/") der source-Wert \\/, denn würde er / erzeugen, ergäbe das resultierende Literal ///, was ein Zeilenkommentar ist. Ebenso werden alle line terminators escaped, da line-terminator-Zeichen das Regex-Literal aufbrechen würden. Für andere Zeichen gibt es keine Anforderung, solange das Ergebnis parsebar 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 Escaping
new RegExp().source; // "(?:)"
new RegExp("\n").source === "\\n"; // true, starting with ES5