RegExp.prototype.toString()

基线 广泛可用

此功能已经过完善,可以在许多设备和浏览器版本上正常运行。它自以下时间起在所有浏览器中可用 2015 年 7 月.

toString() 方法的 RegExp 实例返回表示此正则表达式的字符串。

试一下

语法

js
toString()

参数

无。

返回值

表示给定对象的字符串。

描述

RegExp 对象覆盖了 toString() 方法的 Object 对象;它不会继承 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 语言规范
# sec-regexp.prototype.tostring

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅