RegExp.prototype.source

source プロパティは、正規表現オブジェクトのソーステキストを含む String を返します。これには、両端の 2 つのスラッシュやフラグは含まれません。

RegExp.prototype.source のプロパティ属性
書込可能 不可
列挙可能 不可
設定可能

source の使用

var regex = /fooBar/ig;

console.log(regex.source); // "fooBar", /.../ と "ig" は含まれません。

空の正規表現とエスケープ

ECMAScript 5 から、source プロパティは空の正規表現に対して空文字を返さなくなりました。代わりに、(?:) 文字列を返します。加えて、 ("\n" のような) 行区切りはエスケープされます。

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

new RegExp('\n').source === '\n';  // ES5 以前で、true 
new RegExp('\n').source === '\\n'; // ES5 から、true

仕様書

仕様書
ECMAScript (ECMA-262)
RegExp.prototype.source の定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
sourceChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 5Safari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100
"(?:)" for empty regexpsChrome 完全対応 6Edge 完全対応 12Firefox 完全対応 38IE 未対応 なしOpera 完全対応 15Safari 完全対応 5WebView Android 完全対応 ≤37Chrome Android 完全対応 18Firefox Android 完全対応 38Opera Android 完全対応 14Safari iOS 完全対応 4.2Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.8.0
EscapingChrome 完全対応 73Edge 完全対応 12Firefox 完全対応 38IE 完全対応 10Opera 完全対応 60Safari 完全対応 6WebView Android 完全対応 73Chrome Android 完全対応 73Firefox Android 完全対応 38Opera Android 完全対応 52Safari iOS 完全対応 6Samsung Internet Android 未対応 なしnodejs 完全対応 12.0.0
Prototype accessor property (ES2015)Chrome 完全対応 48Edge 完全対応 12Firefox 完全対応 41IE 完全対応 4Opera 完全対応 35Safari 完全対応 1.3WebView Android 完全対応 48Chrome Android 完全対応 48Firefox Android 完全対応 41Opera Android 完全対応 35Safari iOS 完全対応 1Samsung Internet Android 完全対応 5.0nodejs 完全対応 6.0.0

凡例

完全対応  
完全対応
未対応  
未対応

関連情報