Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

RegExp : propriété hasIndices

Baseline
Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2021.

La propriété d'accesseur hasIndices des instances de RegExp retourne si l'indicateur d est utilisé pour cette expression rationnelle.

Exemple interactif

const regex1 = /toto/d;

console.log(regex1.hasIndices);
// Résultat attendu : true

const regex2 = /truc/;

console.log(regex2.hasIndices);
// Résultat attendu : false

Description

RegExp.prototype.hasIndices a pour valeur true si l'indicateur d est utilisé ; sinon, false. L'indicateur d indique que le résultat d'une correspondance d'expression rationnelle doit contenir les indices de début et de fin des sous-chaînes de caractères de chaque groupe capturant. Il ne modifie en rien l'interprétation ou le comportement de correspondance de l'expression rationnelle, mais fournit uniquement des informations supplémentaires dans le résultat de la correspondance.

Cet indicateur affecte principalement la valeur de retour de exec(). Si l'indicateur d est présent, le tableau retourné par exec() possède une propriété supplémentaire indices comme décrit dans la valeur de retour de la méthode exec(). Comme toutes les autres méthodes liées aux expressions rationnelles (telles que String.prototype.match()) appellent exec() en interne, elles retournent également les indices si l'expression rationnelle possède l'indicateur d.

L'accesseur en écriture de hasIndices est undefined. Vous ne pouvez pas modifier cette propriété directement.

Exemples

Utiliser hasIndices

js
const chaine1 = "toto truc toto";

const regex1 = /toto/dg;

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

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

const chaine2 = "toto truc toto";

const regex2 = /toto/;

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

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

Spécifications

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

Compatibilité des navigateurs

Voir aussi