Eu uso isso
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
regexp para validar o email
([\w\.\-]+)
- refere-se ao domínio de primeiro nível (muitas letras e números, também apontar e hífen)
([\w\-]+)
- refere -se ao domínio de segundo nível
((\.(\w){2,3})+)
- e refere-se a outros domínios de nível (de 3 ao infinito), que inclui um ponto e 2 ou 3 literais
o que há de errado com este regex?
EDIT: não corresponde ao email "[email protected]"
c#
regex
validation
Sergey
fonte
fonte
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,})+)$""
Respostas:
Os TLDs como .museum não são compatíveis dessa maneira, e existem outros TLDs longos. Além disso, você pode validar endereços de email usando a classe MailAddress, como a Microsoft explica aqui em uma observação:
Isso evita muitas dores de cabeça porque você não precisa escrever (ou tentar entender a regex de outra pessoa).
fonte
Eu acho que
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
deveria funcionar.Você precisa escrever como
Esteja avisado de que isso falhará se:
Há um subdomínio após o
@
símbolo.Você usa um TLD com um comprimento maior que 3, como
.info
fonte
Eu tenho uma expressão para verificar os endereços de email que eu uso.
Como nenhuma das opções acima é tão curta ou precisa quanto a minha, pensei em publicá-la aqui.
Para obter mais informações, leia sobre isso aqui: C # - Expressão regular por email
Além disso, isso verifica a validade da RFC com base na sintaxe do email, não se o email realmente existe. A única maneira de testar se um email realmente existe é enviá-lo e enviá-lo por email e fazer com que o usuário verifique se recebeu o email clicando em um link ou inserindo um token.
Depois, existem domínios descartáveis, como Mailinator.com e outros. Isso não faz nada para verificar se um email é de um domínio descartável ou não.
fonte
Encontrei um bom documento no MSDN para isso.
Como verificar se as seqüências de caracteres estão no formato de email válido http://msdn.microsoft.com/en-us/library/01escwtf.aspx (verifique se esse código também oferece suporte ao uso de caracteres não ASCII para nomes de domínio da Internet. )
Existem 2 implementações, para .Net 2.0 / 3.0 e para .Net 3.5 e superior.
a versão 2.0 / 3.0 é:
Meus testes sobre esse método fornecem:
fonte
[me]@whatever.museum
[email protected]
não é um endereço de email válido?O código a seguir é baseado na implementação de anotações de dados da Microsoft no github e acho que é a validação mais completa para e-mails:
fonte
Isso não atende a todos os requisitos das RFCs 5321 e 5322, mas funciona com as seguintes definições.
Abaixo está o código
fonte
!#$%&'*+-/=?^_
. {|} ~ @ example.com` ou estaDörte@Sörensen.example.com
Melhor regex de validação de email
E é uso: -
fonte
Tente isso para obter o tamanho:
fonte
Tente isso, está funcionando para mim:
fonte
Essa regex funciona perfeitamente:
fonte
Este impede emails inválidos mencionados por outras pessoas nos comentários:
Também evita e-mails com pontos duplos:
Tente testá-lo com o maior número possível de endereços de e-mail inválidos.
Consulte validar endereço de email usando expressão regular em C # .
fonte
Por que não usar a validação de e-mail baseada em atributo EF6?
Como você pode ver acima, a validação do Regex para email sempre tem algum furo. Se você estiver usando anotações de dados EF6, poderá obter facilmente uma validação de email confiável e mais forte com o atributo de anotação de dados EmailAddress disponível para isso. Eu tive que remover a validação de regex que usei anteriormente para email quando recebi uma falha de regex específica do dispositivo móvel no campo de entrada de email. Quando o atributo de anotação de dados usado para validação de email, o problema no celular foi resolvido.
fonte
fonte
Eu uso o código acima para validar o endereço de email.
fonte
fonte
fonte
Foram necessárias muitas tentativas para criar um validador de email que atenda a quase todos os requisitos mundiais de email.
Método de extensão que você pode chamar com:
Você pode obter a sequência padrão Regex chamando:
O Código (principalmente comentários):
fonte
Para validar seu ID de email, você pode simplesmente criar esse método e usá-lo.
Isso retornará Verdadeiro / Falso. (ID de email válido / inválido)
fonte
Esta é a minha abordagem favorita até agora:
Em seguida, use a extensão de string criada como:
fonte
Deixe-me saber se não funcionar :)
fonte
aqui está o nosso Regex para este caso:
existem três partes, que são marcadas. o último é provavelmente o que você precisa. o termo específico {2,6} indica o comprimento mínimo / máximo do TLD no final. HTH
fonte
Experimente o seguinte código:
fonte
PESQUISA DE STRING USANDO O MÉTODO REGEX EM C #
Como validar um email por expressão regular?
Use o método String.Regex () de referência
fonte
1
2
fonte
Eu acho que seu sinal de intercalação e cifrão fazem parte do problema Você também deve modificar um pouco a regex, eu uso o próximo @ "[:] + ([\ w .-] +) @ ([\ w -.]) + ((. (\ w) {2,3}) +) "
fonte
Padrão Regex Email:
fonte
Eu tenho usado o Regex.IsMatch ().
Antes de tudo, você precisa adicionar a próxima instrução:
Em seguida, o método se parece com:
É um método privado por causa da minha lógica, mas você pode colocar o método como estático em outra Camada, como "Utilitários", e chamá-lo de onde você precisa.
fonte
Não existe uma expressão regular perfeita, mas acho que essa é bastante forte, com base no estudo da RFC5322 . E com a interpolação de strings em C #, acho muito fácil de seguir.
Examinado com
NUnit 2.x
.fonte
Eu criei uma classe FormValidationUtils para validar o email:
fonte
Validação de email usando regex
Fonte: validação de email c #
Validação sem Regex usando o construtor de classe MailAddress.MailAddress (String)
fonte
me@localhost
. Por favor, dê uma olhada nestes sites: lista de DPNs ; endereços válidos / inválidos ; regex para o endereço de e-mail RFC822