RegExp.prototype.source

Baseline 已广泛支持

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

source 访问器属性是 RegExp 实例的一个属性,它返回一个字符串,该字符串包含此正则表达式的源文本,不包含两侧的两个斜杠或任何标志。

试一试

const regex = /fooBar/gi;

console.log(regex.source);
// Expected output: "fooBar"

console.log(new RegExp().source);
// Expected output: "(?:)"

console.log(new RegExp("\n").source === "\\n");
// Expected output: true (starting with ES5)
// Due to escaping

描述

从概念上讲,source 属性是正则表达式字面量中两个斜杠之间的文本。语言要求返回的字符串必须被正确转义,以便当 source 与两侧的斜杠连接时,它将形成一个可解析的正则表达式字面量。例如,对于 new RegExp("/")source\\/,因为如果它生成 /,则生成的字面量将是 ///,这是一个行注释。同样,所有 行终止符都将被转义,因为行终止符字符会中断正则表达式字面量。对于其他字符没有要求,只要结果是可解析的即可。对于空正则表达式,将返回字符串 (?:)

示例

使用 source

js
const regex = /fooBar/gi;

console.log(regex.source); // "fooBar", doesn't contain /.../ and "gi".

空正则表达式和转义

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

new RegExp("\n").source === "\\n"; // true, starting with ES5

规范

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

浏览器兼容性

另见