Utiliser les expressions régulières pour effectuer des recherches et remplacements en JavaScript

Dans cette nouvelle leçon, nous allons passer en revue les différentes méthodes des objets String et RegExp qu’on va pouvoir utiliser avec nos expressions régulières afin d’effectuer des recherches ou des remplacements dans des chaines de caractères.

Nous allons pour le moment nous contenter d’utiliser ces méthodes avec des expressions régulières très simples. Nous apprendrons à créer des masques de recherche plus complexes dans les leçons suivantes.

 

La méthode match() de l’objet String

La méthode match() de l’objet String va nous permettre de rechercher la présence de caractères ou de séquences de caractères dans une chaine de caractères.

Pour cela, nous allons lui passer un objet représentant une expressions régulière en argument et match() va renvoyer un tableau avec les correspondances entre notre masque et la chaine de caractères c’est-à-dire un tableau contenant des caractères ou séquences de caractères trouvés dans la chaine de caractères qui satisfont à notre masque de recherche.

Dans le cas où aucune correspondance n’est trouvée, match() renverra la valeur null.

Notez que la méthode match() ne renvoie par défaut que la première correspondance trouvée. Pour que match() renvoie toutes les correspondances, il faudra utiliser l’option ou « drapeau » g qui permet d’effectuer des recherches globales.

Dans le cas où le drapeau g est utilisé, match() ne renverra alors pas les groupes capturants. Nous verrons plus tard exactement ce que sont les drapeaux et les groupes capturants.

Code support HTML pour exemple d'utilisation des méthodes de string et de regExp avec les expressions régulières en JavaScript

Présentation de la méthode match de String et utilisation avec les expressions régulières en JavaScript

Exemple d'utilisation de la méthode match avec les expressions régulières en JavaScript

See the Pen
Cours JavaScript 9.2.1
by Pierre (@pierregiraud)
on CodePen.

Ici, notre deuxième masque utilise un intervalle ou une classe de caractères. Cette expression régulière va permettre de rechercher toute lettre majuscule qui se situe dans l’intervalle « A-Z », c’est-à-dire en l’occurrence n’importe quelle lettre majuscule de l’alphabet (lettres accentuées ou avec cédille exclues). Nous étudierons les classes de caractères dans la prochaine leçon.

Notre troisième masque utilise en plus l’option ou le drapeau g qui permet d’effectuer une recherche dite globale et qui demande à match() de renvoyer toutes les correspondances. Notez que les drapeaux sont les seules entités dans les expressions régulières qui vont se placer à l’extérieur des délimiteurs.

 

La méthode search() de l’objet String

La méthode search() permet d’effectuer une recherche dans une chaine de caractères à partir d’une expression régulière fournie en argument.

Cette méthode va retourner la position à laquelle a été trouvée la première occurrence de l’expression recherchée dans une chaîne de caractères ou -1 si rien n’est trouvé.

Présentation de la méthode search de String et utilisation avec les expressions régulières en JavaScript

Exemple d'utilisation de la méthode search avec les expressions régulières en JavaScript

See the Pen
Cours JavaScript 9.2.2
by Pierre (@pierregiraud)
on CodePen.

 

La méthode replace() de l’objet String

La méthode replace() permet de rechercher un caractère ou une séquence de caractères dans une chaine et de les remplacer par d’autres caractère ou séquence. On va lui passer une expression régulière et une expression de remplacement en arguments.

Cette méthode renvoie une nouvelle chaine de caractères avec les remplacements effectués mais n’affecte pas la chaine de caractères de départ qui reste inchangée.

Tout comme pour match(), seule la première correspondance sera remplacée à moins d’utiliser l’option g dans notre expression régulière.

Présentation de la méthode replace de String et utilisation avec les expressions régulières en JavaScript

Exemple d'utilisation de la méthode replace avec les expressions régulières en JavaScript

See the Pen
Cours JavaScript 9.2.3
by Pierre (@pierregiraud)
on CodePen.

 

La méthode split() de l’objet String

La méthode split() permet de diviser ou de casser une chaine de caractères en fonction d’un séparateur qu’on va lui fournir en argument.

Cette méthode va retourner un tableau de sous chaines créé à partir de la chaine de départ. La chaine de départ n’est pas modifiée.

Présentation de la méthode split de String et utilisation avec les expressions régulières en JavaScript

Exemple d'utilisation de la méthode split avec les expressions régulières en JavaScript

See the Pen
Cours JavaScript 9.2.4
by Pierre (@pierregiraud)
on CodePen.

Dans l’exemple ci-dessus, on utilise un masque de recherche d’expression régulière comme séparateur. Ce masque permet de trouver une espace, une virgule ou une apostrophe qui vont donc servir de séparateur.

Dès que l’un de ces trois symbole est rencontré dans la chaine de départ, la méthode split() crée une nouvelle sous chaîne et la stocke dans un tableau.

Ici, le deuxième élément du tableau crée est vide car nous avons une virgule et une espace qui se suivent. En effet, split() découpe la chaine dès qu’elle rencontre la virgule puis elle la découpe à nouveau dès qu’elle rencontre l’espace. L’élément crée ne contient ici aucun caractère.

 

La méthode exec() de l’objet RegExp

La méthode exec() de RegExp va rechercher des correspondances entre une expression régulière et une chaine de caractères.

Cette méthode retourne un tableau avec les résultats si au moins une correspondance a été trouvée ou null dans le cas contraire.

Pour être tout à fait précis, le tableau renvoyé contient le texte correspondant en premier élément. Les éléments suivants sont composés du texte correspondant aux parenthèses capturantes éventuellement utilisées dans notre expression régulière (une nouvelle fois, nous verrons ce que sont les parenthèses capturantes plus tard).

Présentation de la méthode exec de RegExp et utilisation avec les expressions régulières en JavaScript

Exemple d'utilisation de la méthode exec avec les expressions régulières en JavaScript

See the Pen
Cours JavaScript 9.2.5
by Pierre (@pierregiraud)
on CodePen.

 

La méthode test() de l’objet RegExp

La méthode test() de RegExp va également rechercher des correspondances entre une expression régulière et une chaine de caractères mais va cette fois-ci renvoyer le booléen true si au moins une correspondance a été trouvée ou false dans le cas contraire.

Présentation de la méthode test de RegExp et utilisation avec les expressions régulières en JavaScript

Exemple d'utilisation de la méthode test avec les expressions régulières en JavaScript

See the Pen
Cours JavaScript 9.2.6
by Pierre (@pierregiraud)
on CodePen.

Laisser un commentaire