RegExp.lastMatch ($&)

已弃用: 不再推荐使用此功能。尽管一些浏览器可能仍然支持它,但它可能已从相关的 Web 标准中删除,可能正在被弃用,或者可能仅出于兼容性目的而保留。避免使用它,并尽可能更新现有代码;请参阅此页面底部的兼容性表格,以指导您的决策。请注意,此功能可能随时停止工作。

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

RegExp.lastMatch静态访问器属性返回最后匹配的子字符串。RegExp["$&"]是此属性的别名。

描述

因为lastMatchRegExp的静态属性,所以您始终将其用作RegExp.lastMatchRegExp["$&"],而不是用作您创建的RegExp对象的属性。

每当RegExp(但不是RegExp子类)实例成功匹配时,lastMatch的值都会更新。如果没有进行匹配,则lastMatch为空字符串。lastMatch的设置访问器为undefined,因此您不能直接更改此属性。

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

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

示例

使用 lastMatch 和 $&

js
const re = /hi/g;
re.test("hi there!");
RegExp.lastMatch; // "hi"
RegExp["$&"]; // "hi"

规范

规范
旧版 RegExp 功能
# additional-properties-of-the-regexp-constructor

浏览器兼容性

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

另请参阅