[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Regular_expressions/Modifier [Back]  [Original]

Modificateur : (?ims-ims:...) - JavaScript | MDN

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

Modificateur : (?ims-ims:...)

Baseline 2025
Nouvellement disponible

Depuis septembre 2025, cette fonctionnalit fonctionne sur les appareils et les versions de navigateur les plus rcents. Elle peut ne pas fonctionner sur les appareils ou navigateurs plus anciens.

Un modificateur (modifier en anglais) remplace les paramtres d'indicateur dans une partie spcifique d'une expression rationnelle. Il peut tre utilis pour activer ou dsactiver des indicateurs qui modifient la signification de certains lments de syntaxe des expressions rationnelles. Ces indicateurs sont i, m, et s.

Dans cet article

Syntaxe

regex
(?flags1:pattern)
(?flags1-flags2:pattern)

Note : JavaScript possde uniquement la forme  dlimite  du modificateur, o le motif se trouve dans le groupe du modificateur. La plupart des autres langages prenant en charge les modificateurs proposent une forme  non dlimite , o le modificateur s'applique jusqu' la fin du groupe englobant le plus proche.

Paramtres

flags1 Facultatif

Une chane de caractres contenant les indicateurs activer. Elle peut contenir n'importe quelle combinaison de i, m et s.

flags2 Facultatif

Une chane de caractres contenant les indicateurs dsactiver. Elle peut contenir n'importe quelle combinaison de i, m et s, mais aucun indicateur dj prsent dans flags1.

pattern

Un motif constitu de tout ce que vous pouvez utiliser dans un littral d'expression rationnelle, y compris une disjonction.

Description

Certains indicateurs modifient le sens des lments de syntaxe des expressions rationnelles :

  • L'indicateur i rend l'expression rationnelle insensible la casse en faisant correspondre sans distinction de casse tous les caractres littraux et les classes de caractres.
  • L'indicateur m modifie le comportement des assertions de limite d'entre ^ et $ pour qu'elles correspondent au dbut et la fin de chaque ligne, en plus du dbut et de la fin de l'entre.
  • L'indicateur s modifie le comportement du joker . afin qu'il corresponde n'importe quel caractre, y compris les terminateurs de ligne.

Parfois, vous souhaitez que ces changements ne prennent effet que dans une partie prcise d'un motif d'expression rationnelle. Pour cela, vous pouvez encadrer cette partie avec un modificateur. Par exemple :

js
/(?i:Bonjour) le monde/;

Dans cette expression rationnelle, l'indicateur i est activ uniquement pour la partie Bonjour du motif. La partie le monde distingue les majuscules des minuscules. L'expression correspond donc Bonjour le monde, bonjour le monde et BONJOUR le monde, mais pas BONJOUR LE MONDE. L'expression suivante est quivalente, car elle active globalement l'indicateur i, puis le dsactive pour la partie le monde :

js
/Bonjour (?-i:le monde)/i;

Les paramtres flags1 et flags2 peuvent contenir n'importe quelle combinaison de i, m et s. Toutefois, chaque indicateur doit tre unique entre flags1 et flags2 vous ne pouvez ni activer ou dsactiver deux fois un indicateur, ni l'activer puis le dsactiver immdiatement.

Les paramtres flags1 et flags2 sont facultatifs, mais au moins l'un d'eux ne doit pas tre vide. (?flags1-:pattern) est un modificateur qui active uniquement des indicateurs (quivalent (?flags1:pattern)). (?-flags2:pattern) est un modificateur qui dsactive uniquement des indicateurs. (?:pattern) est simplement un groupe non capturant, et (?-:pattern) est une erreur de syntaxe.

Les autres indicateurs ne sont pas pertinents dans un modificateur et provoquent donc une erreur de syntaxe s'ils sont inclus :

  • Les indicateurs g et y dterminent le comportement de plusieurs appels exec() et influent sur la correspondance de l'expression rationnelle entire.
  • L'indicateur d ajoute des informations au rsultat de exec() et influe sur la correspondance de l'expression rationnelle entire.
  • Les indicateurs u et v modifient le comportement du moteur d'expressions rationnelles d'une manire trop complexe pour tre modifie localement. Ils ont galement des effets globaux sur l'expression rationnelle, par exemple sur l'incrmentation de lastIndex.

Exemples

Faire correspondre un format sur plusieurs lignes uniquement au dbut de la chane de caractres

L'expression rationnelle suivante dfinit un format pour une chane de caractres sur plusieurs lignes. Le premier ^ reprsente le dbut de l'entre entire, car il se trouve dans un modificateur (?-m:), tandis que tous les autres ^ reprsentent le dbut d'une ligne :

js
const motif = /(?-m:^)---\n^title:.*^slug:.*^---/ms;

const entree = `---
title: "Modifier: (?ims-ims:...)"
slug: Web/JavaScript/Reference/Regular_expressions/Modifier
---`;

motif.test(entree); // true

// Saut de ligne supplmentaire au dbut de la chane de caractres
const entree2 = `\n${entree}`;

motif.test(entree2); // false

Faire correspondre certains mots sans distinction de casse

Imaginez que vous recherchiez toutes les dclarations de variables nommes toto ou truc (car ce sont de mauvais noms). Le mot peut apparatre avec n'importe quelle casse, mais vous savez que le mot-cl est toujours en minuscules, vous pouvez donc procder ainsi :

js
const motif = /(?:var|let|const) (?i:toto|truc)\b/;

motif.test("let toto;"); // true
motif.test("const TRUC = 1;"); // true
motif.test("Let toto est un nombre"); // false

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# prod-RegularExpressionModifiers

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page