IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

verifier si un email a le bon format


Sujet :

JavaScript

Vue hybride

heeedi verifier si un email a le bon... 08/06/2009, 01h41
emmanuel.remy Salut, Le plus efficace... 08/06/2009, 03h13
k1rby Je me permet d'en proposer... 08/06/2009, 09h02
heeedi if... 08/06/2009, 09h33
k1rby Ben on vérifie si la chaine... 08/06/2009, 09h58
emmanuel.remy @k1rby: :ccool: c'est... 08/06/2009, 10h22
nod__ haha et puis si on utilise la... 08/06/2009, 11h05
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 116
    Par défaut verifier si un email a le bon format
    bonjour
    comment verifier si un email a le bon format (xxxx@xxx.xx)dans un formulaire
    merci

  2. #2
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Le plus efficace est de passer par une expression régulière. Il en existe plusieurs possibles selon le degré de vérification que tu souhaites et le format d'email que tu autorises. Celle-ci est assez passe-partout:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var s = document.form1.email.value;
    if (s.match(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/i)) 
         alert("ok");
    ERE

  3. #3
    Membre expérimenté Avatar de k1rby
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2008
    Messages : 181
    Par défaut
    Je me permet d'en proposer une un peu mieux (sans offense emmanuel.remy ) parce que dans celle là, des trucs me choquent :
    1. Le [\w-]{2,4} à la fin : un nom de domaine n'a à priori ni chiffre ni underscore ni tiret mais par contre n'est pas limité à 4 caractères mais 6 (.museum par exemple)
    2. Un truc moins grave mais qui me choque quand même : échapper le . dans une classe. Il n'est pas nécessaire d'échapper le . dans une classe (je n'en connais pas la cause réelle mais à mon avis c'est pour une raison de logique : le . représentant tous les caractères, le mettre dans une classe n'aurai aucun intérêt, autant juste mettre . donc c'est - selon moi toujours ^^' - pour cette raison que dans une classe . représente le . et n'est pas un métacaractère)


    Bref tout ça pour dire que j'améliorerai ta regexp comme ça (même si c'est plus du perfectionnisme au dernier degré qu'une amélioration ^^' ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^[\w.-]+@(?:[\w-]+\.)+[a-z]{2,6}$/i
    Ah oui je rend aussi la parenthèse non capturante puisqu'ici, on s'en fout de capturer

  4. #4
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 116
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (s.match(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/i))
    est ce que vous pouvez m'expliquer ce bout du code
    merci

  5. #5
    Membre expérimenté Avatar de k1rby
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2008
    Messages : 181
    Par défaut
    Ben on vérifie si la chaine de caractère s correspond à notre expression régulière.

  6. #6
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    @k1rby: c'est toujours un plaisir d'apprendre ou de lire sous un autre angle, donc pas d'offense !

    Et en toute transparence, sans chercher d'excuses il était 3h du mat' et j'ai fait un copier-coller de regexlib.com sans tout mesurer ! Et ça c'est pas bien !

    ERE

  7. #7
    Membre expérimenté Avatar de nod__
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Par défaut
    haha et puis si on utilise la méthode test() au lieu de match() les parenthèses ne sont pas capturantes (de façon automatique, pas besoin de le préciser) c'est donc évalué plus rapidement ^^.

Discussions similaires

  1. [Pattern][Regex] vérifier que mon email est valide
    Par anitshka dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 23/05/2011, 13h03
  2. Doxygen : bon format
    Par lionheart33806 dans le forum Zend
    Réponses: 9
    Dernier message: 18/10/2008, 18h54
  3. Afficher le jour d'aujourd'hui sous le bon format ?
    Par fabiofabio dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 10/11/2006, 10h56
  4. Déterminer le bon format d’une chaine de cartactère
    Par SchpatziBreizh dans le forum Langage
    Réponses: 8
    Dernier message: 05/08/2005, 08h17
  5. [langage] vérifier une adresse email
    Par GMI3 dans le forum Langage
    Réponses: 10
    Dernier message: 19/10/2003, 18h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo