2013-02-21 5 views
1

Je fais un formulaire d'inscription où les gens peuvent enregistrer, que je vais demander pour Thier son adresse e-mail Si je pouvais mettre une validation regex qui capture tout autre e-mailsValidation par courriel personnalisé sur ASP.NET C#

exemple :

[email protected] ou xxx @ yahoo.com, et ne permettent [email protected] je pouvais mettre en place un système qui envoie un courriel à la personne qui l'inscrit pour lui demander de le valider. Je sais comment implémenter le mail, je suis juste coincé dans cette partie de validation. espérons que ce sens

Est-il possible de modifier la validation email par défaut expression

\ w + (- \ w + [+ '.]) @ \ w + ([-.] \ w +). \ w + ([-.] \ w +) *

+1

Est-ce ASP.NET MVC ou Web Forms? –

+0

Il y a beaucoup de regex-ees de validation d'email sur Internet. Juste Google pour eux. –

+0

vous ne pouvez pas valider les e-mails en utilisant regex.il y a trop de cas de coin où il peut échouer .. use '. * @. *' .. – Anirudha

Répondre

0

j'utiliser le haut dans l'attribut pour valider l'adresse e-mail, puis, en plus de cela, vérifiez ce regex:

@bat.ac.uk$ 

alors vous savez qu'il est un e-mail valide et contient ce que vous cherchez. La validation pour le courrier électronique est très compliquée et je ne conseillerais pas de la réécrire, donc juste valider avec deux choses différentes.

attribut Adresse e-mail: http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.emailaddressattribute.aspx

+0

comment iriez-vous pour mettre en œuvre cela? J'ai essayé de mettre une validation normale pour vérifier si l'adresse e-mail est valide et sur une autre validation personnalisée j'ai collé ce que vous avez dit sur l'expression régulière, mais cela n'a pas fonctionné, si vous pouvez m'aider car je suis coincé à ce sujet sans pouvoir passer à la prochaine étape de mon développement de ce webform – Suits999

0

Je vous conseille d'utiliser le validateur par défaut pour vérification du courrier est valide et ajouter une CustomValidator mise en œuvre à la fois côté client et validation du côté serveur.

Ici, vous pouvez vérifier les extensions et effectuer la logique personnalisée dont vous avez besoin.

+0

Enfin trouvé la réponse à cette question, Merci pour l'aide de toute façon tout le monde] \ w + ([- +.] \ w +) * @ bat.ac.uk Qui a fait le travail pour moi – Suits999

1

Si cela est ASP.NET Web Forms, vous pouvez utiliser un RegularExpressionValidator pour faire le travail.

<asp:RegularExpressionValidator ID="SomeID" 
    runat="server" 
    ControlToValidate="TheControlIDToValidate" 
    ErrorMessage="An error message you want to display." 
    ValidationExpression="\w+([-+.']\w+)@\w+([-.]\w+).\w+([-.]\w+)*" 
    EnableClientScript="true" /> 

Cela validera la valeur côté client en utilisant JavaScript. Cependant, il peut être contournée si JavaScript n'est pas activé si côté serveur que vous devez faire utiliser la classe Regex:

Regex rgx = new Regex(@"\w+([-+.']\w+)@\w+([-.]\w+).\w+([-.]\w+)*", RegexOptions.IgnoreCase); 
MatchCollection matches = rgx.Matches(input); 

alors si le matches.Count > 0 vous êtes bon.


Cependant, si elle est ASP.NET MVC vous pouvez utiliser l'annotation de données RegularExpression. Vous ajoutez simplement un attribut à la propriété sur votre modèle:

[RegularExpression(@"\w+([-+.']\w+)@\w+([-.]\w+).\w+([-.]\w+)*", "Some error message.")] 
public string EmailAddress { get; set; } 
Questions connexes