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.
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é.
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.
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.
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).
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.
See the Pen
Cours JavaScript 9.2.6 by Pierre (@pierregiraud)
on CodePen.