Valider la saisie d’une adresse e-mail

Ces articles pourraient également vous intéresser...

13 réponses

  1. zoccolo dit :

    Eureka, j’ai trouvé : j’ai re tapé les guillemets qui me semblaient inclinés et maintenant cela fonctionne.
    Avez-vous déjà eu des retours d’info sur un problème de copier coller?

    • Hervé Inisan dit :

      Non, pas particulièrement. Mais effectivement, il vaut mieux, sur le Web, copier/coller le code brut plutôt que le code formaté qui peut contenir des parasites.
      Sur ce blog, les portions de code ont des icônes “Basculer vers code brut” et “Copy (copier)” qui devraient aider.

  2. zoccolo dit :

    Bonjour, Alors pour moi rien ne fonctionne! Jai bien copié la fonction, activé le RegExp 5.5 maisdans la fenêtre d’exécution la seule valeur retournée est ‘Faux”.
    Pour essayer de comprendre le RegExp, j’ai essayé de travailler avec un pattern plus simple : juste des chiffres (max 8) avec ceci “\d{1,8}@gmail.com” pour agir sur la seule partie avant l’@ mais la fonction me retourne Vrai pour 879@gmail.com, Faux pour toto@gmail.com, jusque là c’est bon, mai vrai pour 879toto@gmail.com.
    Mon objectif est de vérifier le nommage de fichiers du type “8888 Nom du fichier “avant de les importer dans une table (C’est l’espace entre les chiffres et le nom du fichier qui est important car je récupère ce nombre pour lier une table, et sans espace… ça plante)
    Bref j’ai surtout besoin de comprendre pourquoi “\d{1,8}@gmail.com” autorise les caractères et pourqoui votre fonction EmailValide fonctionne chez les autres et pas chez moi!
    Aurai-je raté quelque chose?
    Merci pour vos sites, Monsieur Inisan, Ils m’ont déjà permis d’arriver jusqu’au RegExp…

  3. Focus3D dit :

    Salut,

    Que pensez-vous de:
    re.Pattern = “^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$”

    • Hervé Inisan dit :

      Je n’ai pas eu le temps de tester, mais de loin, ça a l’air correct. :)
      En fait, il y a pas mal de variantes possibles, selon qu’on souhaiter coller au plus près de la RFC2822, ou qu’on est plus restrictif.

  4. Hervé Inisan dit :

    Christophe > A froid comme ça, il faudrait voir si on peut adapter l’expression (le pattern) pour éviter 2 “@”. Ou, en test supplémentaire (hors de la fonction EmailValide), compter le nombre de “@” dans la chaîne.

    Mais il faut peut-être aussi voir du côté du stockage, pour éviter le souci : un champ qui contient plusieurs valeurs n’est pas atomique (ce qui n’est pas conseillé dans une base de données). Si c’est un comportement fréquent, il faudrait une table pour gérer les emails.

  5. Christophe dit :

    Bonjour,

    J’ai un champ emails qui peut contenir plusieurs destinataires séparés par un ;
    Une fonction me permet de séparer ces emails et donc avec la fonction ci-dessus de vérifier la conformité.

    Cependant j’ai eu des cas ou deux emails n’étaient pas séparés par un ; du type : email1@domaine1email2@domaine2
    La fonction ci dessus indique que c’est un email valide. Je ne sais comment faire pour corriger.

    Merci par avance.

  6. Hervé Inisan dit :

    Laurent W. > A vue de nez, là où est placé le S, il gère les espaces pour la partie avant le @ seulement. Il en faudrait sans doute dans les autres parties du pattern.

  7. Laurent W. dit :

    Excuse-moi, j’ai posé la question trop vite, en fait, j’ai trouvé la réponse.

    j’ai rajouté S qui interdit tout espace.

    re.Pattern = “w+([-+.']w+)S*@w+([-.]w+)*.w+([-.]w+)*”

    Si tu peux valider ou non, mais merci, ça va bien aider pour éviter les erreurs…

  8. Laurent W. dit :

    Bonjour,

    Le code que vous proposez fonctionne très bien.

    Comme j’ai fais des tests sur une base de données existantes, il y a eu énormément d’erreur dans l’écriture des adresses mail, c’est pourquoi, je vais mettre en place votre code de programmation.

    Mais j’ai vu des erreurs que votre programme ne gère pas, ce sont les espaces. J’ai trouvé dans la liste une multitude de courriel qui avait un espace, soit en plein milieu du nom, soit après le @, soit avant ou après le . pour l’extension…

    Comment intégrer ce souci dans votre code ? Merci beaucoup !

  9. Hervé Inisan dit :

    Raff > Est-ce que tu peux poster le bout de code qui pose problème ?

  10. Raff dit :

    Bonjour, merci pour toutes ces astuces qui me permettent d’avancer sur mon projet, néanmoins celui-ci me pose problème:

    Tout est activé, la fonction en test fonctionne mais lorsque je l’applique à mon form_BeforeUpdate celui ci me souligne la ligne de condition if not… comme non reconnue !

    Si quelqu’un peut m’aider, merci

  11. arsene59 dit :

    Salut, j’ai lu et testé ton code ça fonctionne à merveilles. je l’ai utilisé dans mon application et j’ai des bons résultats. je te tire un coup de chapeau

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">