RegExp.prototype.toString()

toString() メソッドは正規表現を表す文字列を返します。

構文

regexObj.toString();

戻り値

呼び出し元のオブジェクトを表す文字列です。

説明

その RegExp オブジェクトは Object オブジェクトの toString() メソッドを上書きします。つまり Object.prototype.toString() を継承しません。RegExp オブジェクトにおける toString() メソッドは、その正規表現オブジェクトを表す文字列を返します。

toString() を使う

以下の例は RegExp オブジェクトの文字列の値を表示します。:

var myExp = new RegExp('a+b+c');
console.log(myExp.toString());  // logs '/a+b+c/'

var foo = new RegExp('bar', 'g');
console.log(foo.toString());    // logs '/bar/g'

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

ECMAScript 5 以降では、空の正規表現は "/(?:)/" 文字列を返し、"\n" などの行末記号はエスケープされます。

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

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

仕様

仕様書 策定状況 コメント
ECMAScript 3rd Edition (ECMA-262) 標準 初期定義です。JavaScript 1.1 で実装されました。
ECMAScript 5.1 (ECMA-262)
RegExp.prototype.toString の定義
標準 エスケープ動作の定義と空の正規表現の "(?:)" の定義を追加しました。
ECMAScript 2015 (6th Edition, ECMA-262)
RegExp.prototype.toString の定義
標準  
ECMAScript Latest Draft (ECMA-262)
RegExp.prototype.toString の定義
ドラフト  

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
toStringChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 4Opera 完全対応 ありSafari 完全対応 1WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 あり
EscapingChrome 完全対応 73Edge 完全対応 12Firefox 完全対応 38IE 完全対応 9Opera 完全対応 60Safari 完全対応 6WebView Android 完全対応 73Chrome Android 完全対応 73Firefox Android 完全対応 38Opera Android 完全対応 52Safari iOS 完全対応 6Samsung Internet Android 未対応 なしnodejs 完全対応 あり

凡例

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

関連情報