RegExp.lastMatch ($&)
已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。
注意:所有暴露全局最后匹配状态的 RegExp 静态属性都已弃用。有关更多信息,请参阅 已弃用的 RegExp 功能。
RegExp.lastMatch 静态访问器属性返回最后匹配的子字符串。RegExp["$&"] 是此属性的别名。
描述
由于 lastMatch 是 RegExp 的静态属性,因此您始终使用 RegExp.lastMatch 或 RegExp["$&"] 来访问它,而不是作为您创建的 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 功能 # RegExp 构造函数的附加属性 |
浏览器兼容性
加载中…