RegExp.prototype.toString()

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

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: "/\n/g"

console.log(new RegExp("\\n", "g").toString());
// Expected output: "/\n/g"

语法

js
toString()

参数

无。

返回值

表示给定对象的字符串。

描述

RegExp 对象覆盖了 Object 对象的 toString() 方法;它不继承 Object.prototype.toString()。对于 RegExp 对象,toString() 方法返回正则表达式的字符串表示。

实际上,它会读取正则表达式的 sourceflags 属性,并返回一个格式为 /source/flags 的字符串。toString() 的返回值保证是一个可解析的正则表达式字面量,尽管它可能与最初为正则表达式指定的文本不完全相同(例如,标志可能会重新排序)。

示例

使用 toString()

以下示例显示了 RegExp 对象的字符串值

js
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 这样的行终止符会被转义。这使得返回值始终是一个有效的正则表达式字面量。

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

new RegExp("\n").toString() === "/\\n/"; // true

规范

规范
ECMAScript® 2026 语言规范
# sec-regexp.prototype.tostring

浏览器兼容性

另见