source プロパティは、regexp オブジェクトのソーステキストを含む 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 3rd Edition (ECMA-262) 標準 初期定義。JavaScript 1.2 で実装。JavaScript 1.5: sourceRegExp インスタンスのプロパティであり、RegExp オブジェクトのプロパティではありません。
ECMAScript 5.1 (ECMA-262)
RegExp.prototype.source の定義
標準 空の正規表現に対して source プロパティは、空文字の代わりに "(?:)" を返します。エスケープに対する振る舞いの定義が追加されました。
ECMAScript 2015 (6th Edition, ECMA-262)
RegExp.prototype.source の定義
標準 source は、インスタンス所有のデータプロパティというよりは、プロトタイプアクセッサプロパティとなりました。
ECMAScript Latest Draft (ECMA-262)
RegExp.prototype.source の定義
ドラフト  

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
基本対応Chrome 完全対応 ありEdge 完全対応 ありFirefox 完全対応 1IE 完全対応 ありOpera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile 完全対応 ありFirefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 ありnodejs 完全対応 あり
Prototype accessor property (ES2015)Chrome 完全対応 ありEdge ? Firefox 完全対応 41IE ? Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 ありChrome Android 完全対応 ありEdge Mobile ? Firefox Android 完全対応 41Opera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android 完全対応 ありnodejs 完全対応 あり
EscapingChrome ? Edge ? Firefox 完全対応 38IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android 完全対応 38Opera Android ? Safari iOS ? Samsung Internet Android ? nodejs ?
"(?:)" for empty regexpsChrome 完全対応 ありEdge ? Firefox 完全対応 38IE ? Opera ? Safari 完全対応 ありWebView Android ? Chrome Android ? Edge Mobile ? Firefox Android 完全対応 38Opera Android ? Safari iOS ? Samsung Internet Android ? nodejs ?

凡例

完全対応  
完全対応
実装状況不明  
実装状況不明

関連項目

ドキュメントのタグと貢献者

このページの貢献者: mdnwebdocs-bot, segayuu, YuichiNukiyama, teoli, ethertank, Potappo, Mgjbot
最終更新者: mdnwebdocs-bot,