bonjour
comment verifier si un email a le bon format (xxxx@xxx.xx)dans un formulaire
merci
bonjour
comment verifier si un email a le bon format (xxxx@xxx.xx)dans un formulaire
merci
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:
ERE
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");
Je me permet d'en proposer une un peu mieux (sans offense emmanuel.remy) parce que dans celle là, des trucs me choquent :
- 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)
- 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 ^^' ) :
Ah oui je rend aussi la parenthèse non capturante puisqu'ici, on s'en fout de capturer
Code : Sélectionner tout - Visualiser dans une fenêtre à part /^[\w.-]+@(?:[\w-]+\.)+[a-z]{2,6}$/i![]()
est ce que vous pouvez m'expliquer ce bout du code
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (s.match(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/i))
merci
Ben on vérifie si la chaine de caractère s correspond à notre expression régulière.
@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'excusesil était 3h du mat' et j'ai fait un copier-coller de regexlib.com sans tout mesurer ! Et ça c'est pas bien !
ERE
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 ^^.
Partager