Utilisation des expressions régulières pour le contrôle des chaînes de caractères ● Les expressions régulières permettent d’effectuer des traitements sur des chaînes de caractères. Leur construction respecte une syntaxe qui n’est pas propre au Javascript (elle vient de PERL (langage informatique dont la caractéristique est d'avoir été inventé par un linguiste !). ● Une expression régulière est créée en instanciant un objet de la classe RegExp. Il s’agit de la définition du format attendu de la chaîne de caractères.
Exemple d’expression régulière Définition d’une fonction qui teste la vraisemblance d’une adresse mél... on définit ce que l'on veut.... une adresse , c'est une suite de caractère... des lettres non accentuées, sans espace... Et ce, du début au Donc le début sera : Par contre, on sait qu'il peut y avoir un point, souligné ou tiret dès la deuxième position... Donc ?????
Simplification, et amélioration la solution : On peut simplifier, car le point n'est pas dangereux, le souligné non plus, et si on choisit bien la place du -, il est automatiquement « dé-spécialisé »... Encore une erreur à gérer, on ne peut pas finir par., _ ou - Donc ?
Le nom de domaine Maintenant, imaginons que nous voulons accepter uniquement les adresses de wanadoo.fr ou de free.fr (en fin de chaîne) ? Quelle expression rationnelle utiliser ? On en profitera pour supprimer la référence aux majuscules, c'est inutile dans un mail... Donc ?
Tous les noms de domaine Remarquez le $ de la fin, et l'usage du | (ou) Maintenant, nous acceptons tous les noms de domaines, et deux ou trois lettres pour la fin (comme fr, uk, com, edu, etc)
Fin de la construction Utilisation ici du multiplicateur {a,b}... L'expression est assez précise... Pourtant quelques (rares) erreurs pourraient se produire... Lesquelles ?
Exemple RegExp dans une page web function test (form, champ) { var var leChamp=eval('document.'+form+'.'+champ); if (!format.test(leChamp.value)) alert (' incorrect'); } ////et plus loin, dans le html, on appelera la fonction adresse