yo uso esto
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
regexp para validar el correo electrónico
([\w\.\-]+)
- esto es para el dominio de primer nivel (muchas letras y números, también puntos y guiones)
([\w\-]+)
- esto es para el dominio de segundo nivel
((\.(\w){2,3})+)
- y esto es para otros dominios de nivel (del 3 al infinito) que incluye un punto y 2 o 3 literales
¿Qué tiene de malo esta expresión regular?
EDITAR: no coincide con el correo electrónico "[email protected]"
c#
regex
validation
Sergey
fuente
fuente
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,})+)$""
Respuestas:
Los TLD como .museum no se corresponden de esta manera, y hay algunos otros TLD largos. Además, puede validar las direcciones de correo electrónico utilizando la clase MailAddress como Microsoft explica aquí en una nota:
Esto te ahorra muchos dolores de cabeza porque no tienes que escribir (o tratar de entender la expresión regular de otra persona).
fuente
Creo que
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
debería funcionar.Necesitas escribirlo como
Tenga en cuenta que esto fallará si:
Hay un subdominio después del
@
símbolo.Utiliza un TLD con una longitud superior a 3, como
.info
fuente
Tengo una expresión para verificar las direcciones de correo electrónico que uso.
Como ninguno de los anteriores fue tan corto o preciso como el mío, pensé en publicarlo aquí.
Para obtener más información, lea aquí: C # - Expresión regular de correo electrónico
Además, esto verifica la validez de RFC en función de la sintaxis del correo electrónico, no si el correo electrónico realmente existe. La única forma de probar que realmente existe un correo electrónico es enviar un correo electrónico y hacer que el usuario verifique que recibió el correo electrónico haciendo clic en un enlace o ingresando un token.
Luego están los dominios descartables, como Mailinator.com y otros. Esto no hace nada para verificar si un correo electrónico es de un dominio desechable o no.
fuente
Encontré un buen documento en MSDN para ello.
Cómo: Verificar que las cadenas están en formato de correo electrónico válido http://msdn.microsoft.com/en-us/library/01escwtf.aspx (compruebe que este código también admite el uso de caracteres no ASCII para nombres de dominio de Internet. )
Hay 2 implementaciones, para .Net 2.0 / 3.0 y para .Net 3.5 y superior.
la versión 2.0 / 3.0 es:
Mis pruebas sobre este método dan:
fuente
[me]@whatever.museum
[email protected]
no es una dirección de correo electrónico válida?El siguiente código se basa en la implementación de anotaciones de datos de Microsoft en github y creo que es la validación más completa para correos electrónicos:
fuente
Esto no cumple con todos los requisitos de los RFC 5321 y 5322, pero funciona con las siguientes definiciones.
Debajo está el código
fuente
!#$%&'*+-/=?^_
. {|} ~ @ example.com` o estaDörte@Sörensen.example.com
Mejor regex de validación de correo electrónico
Y su uso: -
fuente
Probar esto para el tamaño:
fuente
Prueba esto, está funcionando para mí:
fuente
Esta expresión regular funciona perfectamente:
fuente
Este evita los correos electrónicos no válidos mencionados por otros en los comentarios:
También evita los correos electrónicos con puntos dobles:
Intente probarlo con tantas direcciones de correo electrónico no válidas como pueda encontrar.
Vea validar la dirección de correo electrónico utilizando expresiones regulares en C # .
fuente
¿Por qué no utilizar la validación de correo electrónico basada en atributos EF6?
Como puede ver arriba, la validación de Regex para correo electrónico siempre tiene algún hueco. Si está utilizando anotaciones de datos EF6, puede lograr fácilmente una validación de correo electrónico confiable y más fuerte con el atributo de anotación de datos EmailAddress disponible para eso. Tuve que eliminar la validación de expresiones regulares que usé antes para el correo electrónico cuando recibí un error de expresión regular específico del dispositivo móvil en el campo de entrada de correo electrónico. Cuando se utilizó el atributo de anotación de datos para la validación del correo electrónico, se resolvió el problema en dispositivos móviles.
fuente
fuente
Utilizo el código anterior para validar la dirección de correo electrónico.
fuente
fuente
fuente
Se han realizado muchos intentos para crear un validador de correo electrónico que cumpla con casi todos los requisitos mundiales de correo electrónico.
Método de extensión al que puede llamar con:
Cadena de patrón de expresiones regulares que puede obtener llamando a:
El Código (principalmente comentarios):
fuente
Para validar su ID de correo electrónico, simplemente puede crear dicho método y usarlo.
Esto devolverá Verdadero / Falso. (ID de correo electrónico válido / no válido)
fuente
Este es mi enfoque favorito hasta ahora:
Luego use la extensión de cadena creada como:
fuente
Solo avíseme SI no funciona :)
fuente
Aquí está nuestro Regex para este caso:
Hay tres partes, que se verifican. el último es probablemente el que necesita. el término específico {2,6} le indica la longitud mínima / máxima del TLD al final. HTH
fuente
Pruebe el siguiente código:
fuente
BÚSQUEDA DE CADENA CON EL MÉTODO REGEX EN C #
¿Cómo validar un correo electrónico por expresión regular?
Utilice el método String.Regex () de referencia
fuente
1
2
fuente
Creo que su símbolo de intercalación y dólar son parte del problema. También debe modificar un poco la expresión regular, utilizo la siguiente @ "[:] + ([\ w .-] +) @ ([\ w -.]) + ((. (\ w) {2,3}) +) "
fuente
Patrón de correo electrónico de expresiones regulares:
fuente
He estado usando Regex.IsMatch ().
En primer lugar, debe agregar la siguiente declaración:
Entonces el método se ve así:
Es un método privado debido a mi lógica, pero puede poner el método como estático en otra capa como "Utilidades" y llamarlo desde donde lo necesite.
fuente
No hay una expresión regular perfecta, pero esta es bastante fuerte, creo, basada en el estudio de RFC5322 . Y con la interpolación de cadenas C #, creo que también es bastante fácil de seguir.
Vetted con
NUnit 2.x
.fuente
He creado una clase FormValidationUtils para validar el correo electrónico:
fuente
Validación de correo electrónico usando regex
Fuente: validación de correo electrónico c #
Validación sin expresión regular utilizando el constructor de clase MailAddress.MailAddress (String)
fuente
me@localhost
. Por favor, eche un vistazo a estos sitios: lista de TLD ; direcciones válidas / inválidas ; regex para la dirección de correo electrónico RFC822