La méthode match() en Javascript | Développement Web

La méthode match() en Javascript

La méthode exec() permet de trouver la première occurrence trouvée dans la chaîne traitée correspondant au motif.

La méthode match() quant à elle permet de renvoyer toutes les occurrences trouvées dans la chaîne de caractères qui correspondent au motif.

Afin d’illustrer cette fonction, nous allons reprendre l’exemple du numéro de téléphone. Ici, nous allons donc récupérer toutes les occurrences correspondant au format « numéro de téléphone » et non seulement la première.

La boucle for permet de parcourir tous les éléments de notre tableau.

Comme dans l’exemple utilisé pour la méthode exec(), le motif devra être composé de 5 paires de chiffres séparées par un tiret, un point ou un espace.

   var motifTel = new RegExp('[0-9]{2}[-. ]{1}[0-9]{2}[-. ]{1}
                              [0-9]{2}[-. ]{1}[0-9]{2}[-. ]{1}[0-9]{2}' , 'g');

   var txt = 'Vous pouvez nous contacter au 01-01-02-09-09 ou au 06-06-06-06-06';

   var myNumbers = txt.match(motifTel);

   if(myNumbers == null){
     document.write('Expression non trouvée ! ...');
   } else {
     document.write('Nombre de numéros trouvés: ' + myNumbers.length + ' < br /> ');
     for(var i = 0; i < myNumbers.length; i++){
       document.write(myNumbers[i] + ' < br /> ');
     }
   }
   // Affiche : Nombre de numéros trouvés: 2
   // 01-01-02-09-09
   // 06-06-06-06-06 

NB: À noter que l’ordre des éléments dans l’utilisation de la fonction match diffère de la fonction exec. Dans la fonction exec(), on écrira expressionReguliere.exec(chaineAtraiter) tandis que dans la fonction match on écrira chaineAtraiter.match(expressionReguliere). L’ordre est inversé. Cela fait partie des incohérences du langage javascript …

Dans cet exemple, nous créons un tableau myNumbers qui contiendra toutes les occurrences trouvées correspondant à un numéro de téléphone comme nous l’avons défini.

La boucle for permet de parcourir tous les éléments de notre tableau.