2010-12-01 2 views
0

Je dois créer une expression régulière pour id e-mail comme celui-ciExpression régulière pour le courrier électronique pour permettre seulement deux domaines

[email protected] et [email protected]

Je dois permettre que yahoo et Gmail en tant que domaine pas tout autre domaine. J'ai utilisé cette expression \ w + ([- +.] \ W +) * @ yahoo.com. Cela fonctionne bien pour Yahoo. mais je veux aussi inclure gmail. Comment puis-je le modifier, sauf pour gmail?

J'utilise ASP.NET 2.0

+0

Pourquoi ne pas simplement vérifier la sous-chaîne du @ –

+2

@Tom Gullen, Parce que les expressions régulières sont * toujours * le bon choix. – strager

Répondre

4

Remplacer:

yahoo\.com 

avec:

(yahoo\.com|gmail\.com) 

ou:

(yahoo|gmail)\.com) 
2

Pour mettre une alternative il vous suffit de faire (yahoo\.com|gmail\.com) et qui doit correspondre un ou l'autre.

+0

'.' correspond à n'importe quel caractère. 'yahooTcom' passerait votre test. –

+0

True. Je fondais simplement sur copier coller de l'original, en ajoutant les alternatives. Clairement c'était trop tôt pour que mon brian soit complètement engagé. :) Je devrais aussi ajouter que dans la regex originale, je pense qu'il y a beaucoup de choses qui ne sont pas correctement couvertes, mais il y en a tellement souvent avec les regex e-mail ... – Chris

1

+ ([-. +] \ W +) * @ (?: yahoo | gmail) .com

0
  1. lire sur this article on email validation depuis votre regex est pas parfait, et si faux positifs/négatifs sont une préoccupation
  2. Vérifiez d'abord si votre chaîne e-mail contient « @yahoo » ou « @gmail »
  3. d'information sur l'utilisation de 1. pour vérifier si ce chaîne est un email valide

Mise à jour: un validateur email prêt à l'emploi se trouve here; puisque c'est de MSDN, il devrait être correct

Questions connexes