RegExp.prototype.source
The source
accessor property is a string containing the source text of the regex object, without the two forward slashes on both sides or any flags.
Try it
Description
Conceptually, the source
property is the text between the two forward slashes in the regular expression literal. The language requires the returned string to be properly escaped, so that when the source
is concatenated with a forward slash on both ends, it would form a parsable regex literal. For example, for new RegExp("/")
, the source
is \\/
, because if it generates /
, the resulting literal becomes ///
, which is a line comment. Similarly, all line terminators will be escaped because line terminator characters would break up the regex literal. There's no requirement for other characters, as long as the result is parsable. For empty regular expressions, the string (?:)
is returned.
Examples
Using source
const regex = /fooBar/gi;
console.log(regex.source); // "fooBar", doesn't contain /.../ and "gi".
Empty regular expressions and escaping
new RegExp().source; // "(?:)"
new RegExp("\n").source === "\\n"; // true, starting with ES5
Specifications
Specification |
---|
ECMAScript Language Specification # sec-get-regexp.prototype.source |
Browser compatibility
BCD tables only load in the browser