RegExp.prototype.hasIndices

基线 广泛可用

此功能已经成熟,并且在许多设备和浏览器版本上都运行良好。它自以下时间起在所有浏览器中可用。 2015 年 7 月.

hasIndices 访问器属性是 RegExp 实例的访问器属性,它返回此正则表达式是否使用了 d 标志。

试试看

描述

如果使用了 d 标志,则 RegExp.prototype.hasIndices 的值为 true;否则,为 falsed 标志指示正则表达式匹配的结果应包含每个捕获组的子字符串的开始和结束索引。它不会以任何方式改变正则表达式的解释或匹配行为,而只是在匹配结果中提供额外的信息。

此标志主要影响 exec() 的返回值。如果存在 d 标志,则 exec() 返回的数组将具有一个额外的 indices 属性,如 exec() 方法的 返回值 中所述。由于所有其他与正则表达式相关的(如 String.prototype.match())方法在内部调用 exec(),因此如果正则表达式具有 d 标志,它们也会返回索引。

hasIndices 的设置访问器为 undefined。您不能直接更改此属性。

示例

组和反向引用 > 使用组和匹配索引 中有一个更详细的使用示例。

使用 hasIndices

js
const str1 = "foo bar foo";

const regex1 = /foo/dg;

console.log(regex1.hasIndices); // true

console.log(regex1.exec(str1).indices[0]); // [0, 3]
console.log(regex1.exec(str1).indices[0]); // [8, 11]

const str2 = "foo bar foo";

const regex2 = /foo/;

console.log(regex2.hasIndices); // false

console.log(regex2.exec(str2).indices); // undefined

规范

规范
ECMAScript 语言规范
# sec-get-regexp.prototype.hasIndices

浏览器兼容性

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

另请参阅