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 July 2015.
toString()
は RegExp
インスタンスのメソッドで、は正規表現を表す文字列を返します。
試してみましょう
console.log(new RegExp("a+b+c"));
// Expected output: /a+b+c/
console.log(new RegExp("a+b+c").toString());
// Expected output: "/a+b+c/"
console.log(new RegExp("bar", "g").toString());
// Expected output: "/bar/g"
console.log(new RegExp("\n", "g").toString());
// Expected output (if your browser supports escaping): "/\n/g"
console.log(new RegExp("\\n", "g").toString());
// Expected output: "/\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® 2025 Language Specification # sec-regexp.prototype.tostring |
ブラウザーの互換性
Report problems with this compatibility data on GitHubdesktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
toString | ||||||||||||||
Line breaks and slashes are escaped |
Legend
Tip: you can click/tap on a cell for more information.
- Full support
- Full support