Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

RegExp.prototype.hasIndices

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨September 2021⁩.

Die hasIndices Accessor-Eigenschaft von RegExp Instanzen gibt an, ob das d-Flag mit diesem regulären Ausdruck verwendet wird oder nicht.

Probieren Sie es aus

const regex1 = /foo/d;

console.log(regex1.hasIndices);
// Expected output: true

const regex2 = /bar/;

console.log(regex2.hasIndices);
// Expected output: false

Beschreibung

RegExp.prototype.hasIndices hat den Wert true, wenn das d-Flag verwendet wurde; andernfalls false. Das d-Flag weist darauf hin, dass das Ergebnis eines regulären Ausdrucks-Matches die Start- und End-Indizes der Teilstrings jeder Erfassungsgruppe enthalten soll. Es ändert die Interpretation oder das Match-Verhalten des regulären Ausdrucks in keiner Weise, sondern liefert nur zusätzliche Informationen im Matchergebnis.

Dieses Flag beeinflusst hauptsächlich den Rückgabewert von exec(). Wenn das d-Flag vorhanden ist, hat das von exec() zurückgegebene Array eine zusätzliche indices-Eigenschaft, wie im Rückgabewert der Methode exec() beschrieben. Da alle anderen regex-bezogenen Methoden (wie String.prototype.match()) exec() intern aufrufen, geben sie auch die Indizes zurück, wenn der regex das d-Flag hat.

Der Set-Accessor von hasIndices ist undefined. Sie können diese Eigenschaft nicht direkt ändern.

Beispiele

Ein detaillierteres Anwendungsbeispiel finden Sie unter Gruppen und Rückbezüge > Verwendung von Gruppen und Match-Indizes.

Verwendung von 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

Spezifikationen

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

Browser-Kompatibilität

Siehe auch