2016-09-04 1 views
0

J'essaie de valider les adresses e-mail. Actuellement, j'utilise le regex suivant pour valider les adresses e-mail qui fonctionne parfaitement bien. Mais je veux maintenant tweek et permettre seulement min 2 et max 40 caractères pour la partie de domaine de l'adresse e-mail i.e après le symbole @. J'ai essayé de régler la portée mais je suppose que ça ne marchera pas comme ça. Où vais-je mal?Regex pour la validation de l'adresse e-mail

Le Regex:

^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})$ 
+0

Voir [this] (http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html). –

Répondre

0

adresses e-mail La validation est non trivial, et votre regex comme il est rejette parfaitement bonnes adresses de messagerie tels que [email protected]. Si vous devez le faire vous-même, jetez un oeil à RFC 822 §6.

Cependant, en C#, il existe une classe MailAddress avec un constructeur acceptant un argument de chaîne. Vous pouvez tenter de construire un MailAddress addr = new MailAddress(emailString), et voir si il lance un FormatException. Comme un avantage, l'objet MailAddress a de nombreuses méthodes utiles pour travailler avec des adresses e-mail.

EDIT: Mes excuses, j'ai raté que vous essayiez de limiter la longueur de l'hôte. Si vous créez le MailAddress comme ci-dessus, alors addr.Host contiendra la partie du nom d'hôte, et vous pouvez en vérifier la longueur.