Spec-Zone.ru › JavaScript

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

Спецификации

Specification
ECMAScript® 2027 Language Specification
# sec-get-regexp.prototype.hasIndices

Совместимость с браузерами

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.lastIndex
  • RegExp.prototype.exec()
  • RegExp.prototype.dotAll
  • RegExp.prototype.global
  • RegExp.prototype.ignoreCase
  • RegExp.prototype.multiline
  • RegExp.prototype.source
  • RegExp.prototype.sticky
  • RegExp.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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API