3: Expressions régulières

Une des tâches fréquentes en JS est de vérifier que les utilisateurs ont bien saisi les champs d'un formulaire.

Validation & expressions régulières
Par exemple, si on a demandé un nombre, il faut vérifier qu'il n'a pas rentré de lettres.
Si on a demandé une adresse mail, il faut vérifier que la saisie ressemble bien à une adresse mail.

Pour çà, on va utiliser des expressions régulières.

N'hésitez pas à relire des explications sur le web.
Par exemple: https://dridk.me/expression-reguliere.html

Sécurité: La vérification en JS permet d'afficher immédiatement un message d'erreur, sans passer par le serveur, elle est donc agréable pour l'utilisateur. Néanmoins, la validation devra aussi être faite impérativement coté serveur. Il est très facile pour un utilisateur mal-intentionné de contourner la validation coté client (JS).

Syntaxe d'une expression régulière:
  • Elles commencent par un "/" et finissent par un "/"
  • Entre les deux "/" il y a des caractères.
  • Les caractères suivants ont un sens particulier: \^$.|?*+()[]{}
    On va voir la plupart de ces caractères spéciaux dans les pages qui suivent.

Quelques exemples qu'on étudiera plus en détail après:
  •  /^abc$/ : correspond uniquement à la chaîne "abc"
  • /^Prix: [0-9]+$/ : correspond à "Prix: " suivi d'un nombre: Exemples: "Prix: 123" "Prix: 5" "Prix: 1000000"
  • /bonjour/ : correspond à "bonjour", mais n'importe où. Exemples: "bonjour Karim", "bien le bonjour"
  • /^Choix: [abcd]$/ : correspond à "Choix: " suivi d'une des lettres a,b,c ou d. Exemples: "Choix: c" , "Choix: a"
Utilisation en JS

Une expression régulière est appliquée à une chaîne de caractères, en général pour vérifier ou remplacer:
  • vérifier si la chaîne correspond à l'expression
    Exemple en JS:
    if( /^abc$/.test("axc") ) {console.log(...);}
  • remplacer :
    Exemple en JS
    let s='abcdef';
    s=s.replace(/abc/,'xyz');
    => s vaut 'xyzdef'