RegExp.prototype.hasIndices
hasIndices
访问器属性是 RegExp
实例的访问器属性,它返回此正则表达式是否使用了 d
标志。
试试看
描述
如果使用了 d
标志,则 RegExp.prototype.hasIndices
的值为 true
;否则,为 false
。d
标志指示正则表达式匹配的结果应包含每个捕获组的子字符串的开始和结束索引。它不会以任何方式改变正则表达式的解释或匹配行为,而只是在匹配结果中提供额外的信息。
此标志主要影响 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 的浏览器中加载。