Utilité des expressions régulières en javascript | Développement Web

Utilité des expressions régulières en javascript

Les expressions régulières existent dans pratiquement tous les langages de programmation.

Parfois relativement complexes à retenir, elles sont assez mal connues. Cependant, l’utilisation de ces objets peut se révéler très puissante.

Maîtriser ces expressions régulières ne peut être que profitable pour tout programmeur, notamment de part sa forme compacte. En effet, ces dernières requièrent beaucoup moins de lignes de code que si l’on devait les remplacer par des tests classiques.

On les appelle communément regexp.

Exemple d’utilisation des RegExp

Dans l’exemple qui suit, simple petite mise en bouche, nous allons créer une fonction qui vérifie que le terme saisi, en l’occurrence un pseudo, remplit bien les conditions demandées.

Pour que le format soit valide, nous allons considérer qu’un pseudo doit comporter entre 5 et 9 caractères. Il devra se composer de n’importe quelle lettre en minuscule (de a à z). Nous n’accepterons pas les caractères accentués mais les chiffres seront acceptés (de 0 à 9).

   function isValidPseudo(pseudo){
     var myPseudo = new RegExp("^[a-z0-9]{5,9}$","g");
     if(myPseudo.test(pseudo)){
       return 'Le pseudo "' + pseudo + '" est valide';
     } else {
       return "Le pseudo saisi ne remplit pas les conditions demandées";
     }
   }

   document.write(isValidPseudo('Analyste'));
   // Mauvais pseudo à cause de la majuscule

   document.write(isValidPseudo('expressions'));
   // Mauvais pseudo à cause du nombre de caractères (>9)

   document.write(isValidPseudo('B 2 B'));
   // Mauvais pseudo à cause de espaces

   document.write(isValidPseudo('développeur'));
   // Mauvais pseudo à cause du caractère accentué

   document.write(isValidPseudo('php759'));
   // Ce pseudo est valide

Dans cet exemple, on constate que le test effectuant la validité du pseudo saisi est très compact.

Le principe des expressions régulières consiste donc à créer un motif (ou un masque) et de tester sa présence dans une chaîne de caractères.

Ce premier test est assez rudimentaire mais l’utilisation des expressions régulières en javascript comme dans les autres langages peut se faire de manière bien plus élaborée et plus complexe.

Quelques explications

Le motif de contrôle de notre fonction isValidPseudo est le suivant « ^[a-z0-9]{5,9}$ », »g ».

  • Ce motif commence par ^ qui signifie le début de la chaîne. Aucun caractère précédent le motif n’est autorisé.
  • La suite, [a-z0-9] représente tous les caractères de a à z (en minuscule) et les chiffres de 0 à 9. Si un autre caractère que ceux-ci est rencontré, l’expression testée sera immédiatement invalidée.
  • La partie {5,9} fournit la longueur requise pour le pseudo. Au minimum, 5 caractères; au maximum, 9.
  • Puisque le motif se termine par $, cela indique qu’aucun caractère ne doit apparaître à la suite de ce motif ([a-z0-9]).
  • L’option notée g signale qu’il faut appliquer le motif sur l’ensemble de la chaîne.