このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
RegExp.prototype.toString()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
toString() はRegExp インスタンスのメソッドで、は正規表現を表す文字列を返します。
In this article
試してみましょう
console.log(new RegExp("a+b+c"));// 予想される結果: /a+b+c/console.log(new RegExp("a+b+c").toString());// 予想される結果: "/a+b+c/"console.log(new RegExp("bar", "g").toString());// 予想される結果: "/bar/g"console.log(new RegExp("\n", "g").toString());// 予想される結果: "/\n/g"console.log(new RegExp("\\n", "g").toString());// 予想される結果: "/\n/g"構文
toString()引数
なし。
返値
呼び出し元のオブジェクトを表す文字列です。
解説
RegExp オブジェクトのtoString() メソッドは、Object オブジェクトのものを上書きします。つまりObject.prototype.toString() を継承しません。RegExp オブジェクトにおけるtoString() メソッドは、その正規表現オブジェクトを表す文字列を返します。
実際には、正規表現のsource とflags プロパティを読み、/source/flags 形式の文字列を返します。toString() の返値は解釈可能な正規表現リテラルであることが保証されますが、元々正規表現に指定されていたものと全く同じテキストではない可能性があります (例えば、フラグの並び順が変更されている可能性があります)。
例
>toString() の使用
以下の例はRegExp オブジェクトの文字列の値を表示します。
const myExp = new RegExp("a+b+c");console.log(myExp.toString()); // '/a+b+c/'const foo = new RegExp("bar", "g");console.log(foo.toString()); // '/bar/g'空の正規表現とエスケープ
toString() はsource プロパティにアクセスするので、空の正規表現は"/(?:)/" という文字列を返し、\n のような改行文字はエスケープされます。これにより、返値は常に有効な正規表現リテラルになります。
new RegExp().toString(); // "/(?:)/"new RegExp("\n").toString() === "/\\n/"; // true仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-regexp.prototype.tostring> |