Dans WINDEV, il existe une procédure native pour contrôler la validité d'une adresse mail : EmailVérifieAdresse
Ci-dessous une procédure qui fait de même mais par le biais d'une expression régulière (REGEXP) :
PROCÉDURE REGEX_ContrôleAdresseMail(s_EmailAContrôler est une chaîne) : booléen
ts_REGEX est un tableau de chaîne
ts_REGEX.AjouteLigne("[-.a-z0-9]+") // partie locale (lettres, chiffres, point, tiret), au moins 1 caractère
ts_REGEX.AjouteLigne("[@]") // arobase obligatoire
ts_REGEX.AjouteLigne("[-.a-z0-9]+") // nom de domaine (lettres, chiffres, point, tiret), au moins 1 caractère
ts_REGEX.AjouteLigne("[.]") // point séparateur
ts_REGEX.AjouteLigne("[a-z]{2,}") // TLD de 2 caractères minimum (com, fr, info, museum...)
// Passage en minuscules pour simplifier la regex
RENVOYER VérifieExpressionRégulière(Minuscule(s_EmailAContrôler), TableauVersChaîne(ts_REGEX,""))
b_Etat est un booléen
b_Etat = REGEX_ContrôleAdresseMail("bdi@test.fr")
SI b_Etat ALORS
Trace("OK : bdi@test.fr")
SINON
Trace("KO : bdi@test.fr")
FIN
b_Etat = REGEX_ContrôleAdresseMail("bditest.fr")
SI b_Etat ALORS
Trace("OK : bditest.fr")
SINON
Trace("KO : bditest.fr")
FIN
b_Etat = REGEX_ContrôleAdresseMail("bdi@test")
SI b_Etat ALORS
Trace("OK : bdi@test")
SINON
Trace("KO : bdi@test")
FIN