Ces options vont nous permettre de changer le comportement par défaut de nos recherches. On les appelle également parfois « drapeaux » (flags en anglais) ou « marqueurs ».
Présentation des options des regex
Les options, encore appelées modificateurs, sont des caractères qui vont nous permettre d’ajouter des options à nos expressions régulières.
Les options ne vont pas à proprement parler nous permettre de chercher tel ou tel caractère mais vont agir à un niveau plus élevé en modifiant le comportement par défaut des expressions régulières. Elles vont par exemple nous permettre de rendre une recherche insensible à la casse.
On va pouvoir facilement différencier une option d’un caractère normal ou d’un métacaractère dans une expression régulière puisque les options sont les seuls caractères qui peuvent et doivent obligatoirement être placés en dehors des délimiteurs du masque, après le délimiteur final.
Liste des options disponibles et exemples d’utilisation
Certaines options sont complexes dans leur fonctionnement, peu utilisées ou ne sont pas toujours compatibles. Le tableau suivant ne présente que les options toujours disponibles et les plus utiles selon moi.
Option | Description |
---|---|
g | Permet d’effectuer une recherche globale |
i | Rend la recherche insensible à la casse |
m | Par défaut, les expressions régulières considèrent la chaine dans laquelle on fait une recherche comme étant sur une seule ligne et font qu’on ne peut donc utiliser les métacaractères ^ et $ qu’une seule fois. L’option m permet de tenir compte des caractères de retour à la ligne et de retour chariot et fait que ^ et $ vont pouvoir être utilisés pour chercher un début et une fin de ligne |
s | Cette option permet au métacaractère . de remplacer n’importe quel caractère y compris un caractère de nouvelle ligne |
Voyons immédiatement comment utiliser ces options en pratique. Notez qu’on va tout à fait pouvoir ajouter plusieurs options à un masque.
See the Pen
Cours JavaScript 9.6.1 by Pierre (@pierregiraud)
on CodePen.
Pour bien comprendre ce code, il faut déjà noter qu’on utilise ici un caractère de nouvelle ligne dans notre chaine (\n
).
Notre premier masque nous permet ici de chercher la séquence « pie » en minuscules dans notre chaine. Celle-ci n’est pas trouvée.
Notre deuxième masque utilise cette fois-ci l’option i
qui rend la recherche insensible à la casse. Ce masque va donc nous permettre de trouver n’importe quelle séquence « pie » en minuscules ou en majuscules.
Notre troisième masque cherche le caractère « e » en fin de chaine. En effet, comme l’option m
n’est pas présente, la regex considèrera que notre chaine est sur une seule ligne.
Notre quatrième masque utilise l’option m
qui va changer le comportement par défaut de notre regex qui va alors tenir compte des retours à la ligne (\n
) et des retours chariots (\r
) dans notre chaine. Ce masque nous permet de cherche le caractère « e » en fin de ligne ou de chaine.
Notre cinquième et dernier masque permet de rechercher n’importe quel caractère dans une chaine.
petite erreur au niveau du paragraphe :
« nous permet de » -> « nous permettre de »
Merci, c’est corrigé !