RegExp.prototype.hasIndices
Baseline Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Свойство доступа hasIndices экземпляров RegExp возвращает, используется ли флаг d с этим регулярным выражением.
Попробуйте
const regex1 = /foo/d; console.log(regex1.hasIndices); // Expected output: true const regex2 = /bar/; console.log(regex2.hasIndices); // Expected output: false
Описание
RegExp.prototype.hasIndices имеет значение true, если использовался флаг d; в противном случае false. Флаг d указывает, что результат совпадения регулярного выражения должен содержать начальные и конечные индексы подстрок каждой группы захвата. Он не изменяет интерпретацию или поведение сопоставления регулярного выражения каким-либо образом, а только предоставляет дополнительную информацию в результате совпадения.
Этот флаг в основном влияет на возвращаемое значение exec(). Если флаг d присутствует, массив, возвращаемый exec(), имеет дополнительное свойство indices, как описано в возвращаемом значении метода exec(). Поскольку все остальные методы, связанные с регулярными выражениями (такие как String.prototype.match()), вызывают exec() внутренне, они также будут возвращать индексы, если регулярное выражение имеет флаг d.
Сеттер hasIndices является undefined. Вы не можете изменить это свойство напрямую.
Примеры
Более подробный пример использования приведен в разделе Группы и обратные ссылки > Использование групп и индексов совпадений.
Использование hasIndices
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
Спецификации
Совместимость с браузерами
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
hasIndices |
90 |
90 |
88 |
76 |
15 |
90 |
88 |
64 |
15 |
15.0 |
90 |
15 |
1.0.0 |
1.8 |
16.0.0 |
См. также
RegExp.prototype.lastIndexRegExp.prototype.exec()RegExp.prototype.dotAllRegExp.prototype.globalRegExp.prototype.ignoreCaseRegExp.prototype.multilineRegExp.prototype.sourceRegExp.prototype.stickyRegExp.prototype.unicode
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/hasIndices