RegExp.leftContext ($`)

已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。

注意:所有暴露全局最后匹配状态的 RegExp 静态属性都已弃用。有关更多信息,请参阅 已弃用的 RegExp 功能

RegExp.leftContext 静态访问器属性返回最近一次匹配之前的部分。RegExp["$`"] 是此属性的别名。

描述

由于 leftContextRegExp 的一个静态属性,您始终使用 RegExp.leftContextRegExp["$`"] 来访问它,而不是作为您创建的 RegExp 对象的属性。

每当一个 RegExp(而不是 RegExp 的子类)实例成功匹配时,leftContext 的值就会更新。如果尚未进行任何匹配,leftContext 为空字符串。leftContext 的设置器为 undefined,因此您无法直接更改此属性。

您不能使用点属性访问器(RegExp.$` )来使用简写别名,因为 ` 不是一个有效的标识符部分,这会导致 SyntaxError。请改用 方括号表示法

$` 也可以在 String.prototype.replace() 的替换字符串中使用,但这与 RegExp["$`"] 遗留属性无关。

示例

使用 leftContext 和 $`

js
const re = /world/g;
re.test("hello world!");
RegExp.leftContext; // "hello "
RegExp["$`"]; // "hello "

规范

规范
旧的 RegExp 功能
# RegExp 构造函数的附加属性

浏览器兼容性

另见