c# - validate - ¿Cuál es la expresión regular más simple para validar correos electrónicos para no aceptarlos a ciegas?
validar correo electronico en asp.net c# (6)
Cuando los usuarios crean una cuenta en mi sitio, quiero hacer que la validación del servidor para los correos electrónicos no acepte cada entrada.
Enviaré una confirmación, de una manera para hacer una validación del apretón de manos .
Estoy buscando algo simple, no el mejor , pero no demasiado simple que no valide nada. No sé dónde debe estar la limitación, ya que cualquier expresión regular no hará la validación correcta porque no es posible hacerlo con expresiones regulares.
Estoy tratando de limitar la sintaxis y la complejidad visual inherente a las expresiones regulares, porque en este caso cualquiera será correcto.
¿Qué expresiones regulares puedo usar para hacer eso?
Aquí está el que cumple con RFC 2822 Sección 3.4.1 ...
(?:[a-z0-9!#$%&''*+/=?^_`{|}~-]+(?:/.[a-z0-9!#$%&''*+/=?^_`{|}~-]+)*|"(?:[/x01-/x08/x0b/x0c/x0e-/x1f/x21/x23-/x5b/x5d-/x7f]|//[/x01-/x09/x0b/x0c/x0e-/x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|/[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[/x01-/x08/x0b/x0c/x0e-/x1f/x21-/x5a/x53-/x7f]|//[/x01-/x09/x0b/x0c/x0e-/x7f])+)/])
Por si acaso tienes curiosidad. :)
^/S+@/S+$
"^ / w [^ @] * @ / w [^ @.] +. / w [^.] {2,4} $". No permite más de un @ o período, funciona muy bien hasta ahora.
Además, para probar diferentes expresiones regulares, descargue Expresso desde http://www.ultrapico.com/ . Realmente me ayudó.
^ [a-zA-Z0-9 _. + -] + @ [a-zA-Z0-9 -] +. [a-zA-Z0-9 -.] + $
- Solo 1 @
- Varios dominios y subdominios
Es posible escribir una expresión regular que solo acepte direcciones de correo electrónico que cumplan con los estándares. Sin embargo, hay algunas direcciones de correo electrónico que no siguen estrictamente los estándares, pero aún funcionan.
Aquí hay algunas expresiones regulares simples para la validación básica:
Contiene un caracter @
@
Contiene @ y un punto en algún lugar después de esto:
@.*?/.
Tiene al menos un carácter antes de @, antes del período y después de él:
.+@.+/..+
Tiene solo un @, al menos un carácter antes de @, antes del período y después de él:
^[^@]+@[^@]+/.[^@]+$
El usuario AmoebaMan17 sugiere esta modificación para eliminar el espacio en blanco:
^[^@/s]+@[^@/s]+/.[^@/s]+$
Creo que este pequeño ajuste a la expresión de AmoebaMan17 debería detener la dirección de inicio / finalización con un punto y también detener varios puntos uno al lado del otro. Tratando de no volver a complicarlo al tiempo que se elimina un problema común.
(?!.*/./.)(^[^/.][^@/s]+@[^@/s]+/.[^@/s/.]+$)
Parece estar funcionando (pero no soy RegEx-pert). Soluciona mi problema con los usuarios al copiar y pegar direcciones de correo electrónico desde el final de las oraciones que finalizan con un punto.
es decir: esta es mi nueva dirección de correo electrónico [email protected].