J'utilise ceci
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
regexp pour valider l'e-mail
([\w\.\-]+)
- c'est pour le domaine de premier niveau (beaucoup de lettres et chiffres, aussi point et trait d'union)
([\w\-]+)
- c'est pour le domaine de deuxième niveau
((\.(\w){2,3})+)
- et c'est pour les autres domaines de niveau (de 3 à l'infini) qui comprend un point et 2 ou 3 littéraux
quel est le problème avec cette expression régulière?
EDIT: il ne correspond pas à l'e-mail "[email protected]"
c#
regex
validation
Sergey
la source
la source
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,})+)$""
Réponses:
Les TLD comme .museum ne correspondent pas de cette façon, et il y a quelques autres TLD longs. En outre, vous pouvez valider les adresses e-mail à l'aide de la classe MailAddress comme Microsoft l'explique ici dans une note:
Cela vous évite beaucoup de maux de tête car vous n'avez pas à écrire (ou essayer de comprendre l'expression régulière de quelqu'un d'autre).
la source
Je pense que ça
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
devrait marcher.Vous devez l'écrire comme
Soyez averti que cela échouera si:
Il y a un sous-domaine après le
@
symbole.Vous utilisez un TLD d'une longueur supérieure à 3, tel que
.info
la source
J'ai une expression pour vérifier les adresses e-mail que j'utilise.
Puisqu'aucune des réponses ci-dessus n'était aussi courte ou aussi précise que la mienne, j'ai pensé la publier ici.
Pour plus d'informations, lisez-le ici: C # - Email Regular Expression
En outre, cela vérifie la validité RFC en fonction de la syntaxe des e-mails, et non pas si l'e-mail existe vraiment. La seule façon de tester l'existence réelle d'un e-mail est d'envoyer et d'envoyer un e-mail et de demander à l'utilisateur de vérifier qu'il a bien reçu l'e-mail en cliquant sur un lien ou en entrant un jeton.
Ensuite, il existe des domaines jetables, tels que Mailinator.com, etc. Cela ne fait rien pour vérifier si un e-mail provient d'un domaine jetable ou non.
la source
J'ai trouvé un bon document sur MSDN pour cela.
Comment: vérifier que les chaînes sont au format e-mail valide http://msdn.microsoft.com/en-us/library/01escwtf.aspx (vérifiez que ce code prend également en charge l'utilisation de caractères non ASCII pour les noms de domaine Internet. )
Il existe 2 implémentations, pour .Net 2.0 / 3.0 et pour .Net 3.5 et supérieur.
la version 2.0 / 3.0 est:
Mes tests sur cette méthode donnent:
la source
[me]@whatever.museum
[email protected]
ne soit pas une adresse e-mail valide?Le code suivant est basé sur l'implémentation d'annotations de données de Microsoft sur github et je pense que c'est la validation la plus complète pour les e-mails:
la source
Cela ne répond pas à toutes les exigences des RFC 5321 et 5322, mais cela fonctionne avec les définitions suivantes.
Ci-dessous le code
la source
!#$%&'*+-/=?^_
. {|} ~ @ example.com` ou celle-ciDörte@Sörensen.example.com
Meilleure expression rationnelle de validation des e-mails
Et c'est l'usage: -
la source
Essayez ceci pour la taille:
la source
Essayez ça, ça marche pour moi:
la source
Ce regex fonctionne parfaitement:
la source
Celui-ci empêche les e-mails invalides mentionnés par d'autres dans les commentaires:
Il empêche également les e-mails à double point:
Essayez de le tester avec autant d'adresses e-mail invalides que possible.
Voir valider l'adresse e-mail à l'aide d'une expression régulière en C # .
la source
Pourquoi ne pas utiliser la validation des e-mails basée sur les attributs EF6?
Comme vous pouvez le voir ci-dessus, la validation Regex pour le courrier électronique a toujours un trou. Si vous utilisez des annotations de données EF6, vous pouvez facilement obtenir une validation e-mail fiable et renforcée avec l'attribut d'annotation de données EmailAddress disponible à cet effet. J'ai dû supprimer la validation regex que j'utilisais auparavant pour les e-mails lorsque j'ai reçu un échec regex spécifique au périphérique mobile sur le champ de saisie e-mail. Lorsque l'attribut d'annotation de données utilisé pour la validation des e-mails, le problème sur mobile a été résolu.
la source
la source
J'utilise le code ci-dessus pour valider l'adresse e-mail.
la source
la source
la source
Il a fallu de nombreuses tentatives pour créer un validateur de courrier électronique qui répond à presque toutes les exigences mondiales en matière de courrier électronique.
Méthode d'extension avec laquelle vous pouvez appeler:
Chaîne de modèle d'expression régulière que vous pouvez obtenir en appelant:
Le Code (principalement des commentaires):
la source
Pour valider votre identifiant e-mail, vous pouvez simplement créer une telle méthode et l'utiliser.
Cela renverra True / False. (ID e-mail valide / non valide)
la source
Voici mon approche préférée à ce jour:
Ensuite, utilisez l'extension de chaîne créée comme:
la source
Laissez - moi savoir SI cela ne fonctionne pas :)
la source
voici notre Regex pour ce cas:
il y a trois parties qui sont contrôlées. le dernier est probablement celui dont vous avez besoin. le terme spécifique {2,6} vous indique la longueur min / max du TLD à la fin. HTH
la source
Essayez le code suivant:
la source
RECHERCHE DE CORDES À L'AIDE DE LA MÉTHODE REGEX EN C #
Comment valider un e-mail par expression régulière?
Utiliser la méthode Reference String.Regex ()
la source
1
2
la source
Je pense que votre signe d'insertion et votre signe dollar font partie du problème. Vous devriez également modifier un peu l'expression régulière, j'utilise la prochaine @ "[:] + ([\ w .-] +) @ ([\ w -.]) + ((. (\ w) {2,3}) +) "
la source
Modèle d'e-mail Regex:
la source
J'utilise Regex.IsMatch ().
Tout d'abord, vous devez ajouter la déclaration suivante:
La méthode ressemble alors à:
C'est une méthode privée à cause de ma logique mais vous pouvez mettre la méthode comme statique dans un autre calque tel que "Utilities" et l'appeler d'où vous avez besoin.
la source
Il n'y a pas d'expression régulière parfaite, mais celle-ci est assez forte, je pense, basée sur l'étude de la RFC5322 . Et avec l'interpolation de chaînes C #, assez facile à suivre, je pense aussi.
Approuvé avec
NUnit 2.x
.la source
J'ai créé une classe FormValidationUtils pour valider l'e-mail:
la source
Validation des e-mails avec regex
Source: validation e - mail c #
Validation sans regex à l' aide du constructeur de classe MailAddress.MailAddress (String)
la source
me@localhost
. Veuillez consulter ces sites: liste des TLD ; adresses valides / invalides ; regex pour l'adresse e-mail RFC822