Web/JavaScript/Reference/Global objects/RegExp/source

From Get docs


The source property returns a String containing the source text of the regexp object, and it doesn't contain the two forward slashes on both sides and any flags.


Property attributes of RegExp.prototype.source
Writable no
Enumerable no
Configurable yes


Examples

Using source

var regex = /fooBar/ig;

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

Empty regular expressions and escaping

Starting with ECMAScript 5, the source property no longer returns an empty string for empty regular expressions. Instead, the string (?:) is returned. In addition, line terminators (such as "\n") are escaped now.

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

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

Specifications

Specification
ECMAScript (ECMA-262)The definition of 'RegExp.prototype.source' in that specification.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet Node.js
source Chrome

Full support 1

Edge

Full support 12

Firefox

Full support 1

IE

Full support 4

Opera

Full support 5

Safari

Full support 1

WebView Android

Full support 1

Chrome Android

Full support 18

Firefox Android

Full support 4

Opera Android

Full support 10.1

Safari iOS

Full support 1

Samsung Internet Android

Full support 1.0

nodejs

Full support 0.1.100

"(?:)" for empty regexps Chrome

Full support 6

Edge

Full support 12

Firefox

Full support 38

IE

No support No

Opera

Full support 15

Safari

Full support 5

WebView Android

Full support ≤37

Chrome Android

Full support 18

Firefox Android

Full support 38

Opera Android

Full support 14

Safari iOS

Full support 4.2

Samsung Internet Android

Full support 1.0

nodejs

Full support 0.8.0

Escaping Chrome

Full support 73

Edge

Full support 12

Firefox

Full support 38

IE

Full support 10

Opera

Full support 60

Safari

Full support 6

WebView Android

Full support 73

Chrome Android

Full support 73

Firefox Android

Full support 38

Opera Android

Full support 52

Safari iOS

Full support 6

Samsung Internet Android

No support No

nodejs

Full support 12.0.0

Prototype accessor property (ES2015) Chrome

Full support 48

Edge

Full support 12

Firefox

Full support 41

IE

Full support 4

Opera

Full support 35

Safari

Full support 1.3

WebView Android

Full support 48

Chrome Android

Full support 48

Firefox Android

Full support 41

Opera Android

Full support 35

Safari iOS

Full support 1

Samsung Internet Android

Full support 5.0

nodejs

Full support 6.0.0

Legend

Full support  
Full support
No support  
No support


See also