javascript regex
JavaScript

Javascript regex : comment faire des recherches avancées facilement?

Javascript regex : cas concret

En Javascript, les expressions régulières ou regex sont présents dans quasiment tous les langages de programmation. Elles permettent de trouver des combinaisons de texte dans un texte justement. Concrètement qu’est que ça donne?

Imaginons que vous receviez un mail d’une adresse email. Vous voulez être absolument sûr que cette adresse email en soit bien une :

  • johnsmith.com
  • johnsmith@gmail.com
  • johnsmith@test@gmail#com

Vous pouvez identifier à peu près les chaînes de caractères qui sont des adresses email et celles qui n’en sont pas. Votre application ne va pas le savoir. Nous lui donnons alors un modèle générique d’adresse email. Il va ainsi pouvoir comparer la chaîne de caractères avec le modèle générique que vous lui avez donner. Ce modèle générique va ressembler à quelque chose comme cela (en français):

  • quelquechose@undomaine.lepays

J’ai pris un exemple concret d’email, mais il est possible de construire des modèles génériques pour ce que vous voulez.

Les différentes méthodes

regex d’email

Nous allons voir tout de suite une regex pour vérifier une adresse email :

new RegExp(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/);

Super, mais je capte rien là.

Les regex sont assez complexes, il y a pas mal de choses à savoir, je ne peux que vous conseiller d’utiliser des outils comme :

Pour les construire sans trop vous prendre la tête. Personnellement, je ne fais que très rarement mes regex moi même, sauf pour des cas très spécifiques. Il n’y a pas de honte à reprendre les regex des autres pour des choses aussi utilisés que des emails.

A noter qu’en Javascript, vous allez utiliser le mot clef new pour instancier un nouvel objet de type RegExp.

match

Il existe différente méthode en javascript pour tester vos regex. Nous allons commencer par match.

const paragraph = 'Mon prénom est Pierre';
const found = paragraph.match(/[A-Z]/g); // regex pour trouver les majuscules
// found : ["M","P"];

match va prendre une regex en paramètre et va vous retourner un tableau correspondant à vos recherches.

exec

exec à la différence de match, va uniquement vous retourner la premiere correspondance qu’il va trouver :

const paragraph = 'Mon prénom est Pierre';
const found = /[A-Z]/g.exec(paragraph); // regex pour trouver la premiere majuscule
// found : ["M"];

Attention, exec est une méthode d’une regex et pas d’une String comme la méthode match.

test

La méthode test va renvoyer un booléan si elle trouve ou pas la regex dans votre chaînes de caractères :

const paragraph = 'Mon prénom est Pierre';
if (/[A-Z]/g.test(paragraph)) {
  // J'ai trouvé une majuscule
}

Parfait pour utiliser en condition de if. Vous utiliserez la méthode test très souvent pour faire des actions en fonction de votre recherche.

search

La méthode search est un peu moins utilisée mais je tenais à vous la montrer quand même. Elle permet de récupérer l’index (la position) d’une chaîne de caractère trouvée par une regex :

const paragraph = 'bonjour, mon nom est Pierre';
const index = paragraph.search(/[A-Z]/g);
console.log(index); // index : 21 

C’est un bon début pour commencer avec les regex, qui ne sont pas faciles à appréhender au début. On a un peu l’impression d’avoir affaire à quelque chose d’insurmontable. Utiliser les outils pour construire vos regex et tout devrait bien se passer.

Si vous voulez aller plus loin dans votre apprentissage en javascript, je ne peux que vous conseiller de lire cet article :
http://pierreterrat.com/javascript-:-le-guide-ultime-pour-bien-commencer-a-apprendre/

Beaucoup d’efforts et de temps sont passés pour vous fournir du contenu de qualité, merci de partager et de commenter cet article pour faire vivre ce blog.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *