试一试
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()
参数
无。
返回值
表示给定对象的字符串。
描述
对象覆盖了 RegExpObject 对象的 toString() 方法;它不继承 Object.prototype.toString()。对于 RegExp 对象,toString() 方法返回正则表达式的字符串表示。
实际上,它会读取正则表达式的 source 和 flags 属性,并返回一个格式为 /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 |
浏览器兼容性
加载中…