c# - online - regex operators




Validación de la dirección de correo electrónico en la aplicación C#MVC 4: con o sin usar Regex (4)

¡Es sorprendente que la cuestión de validar una dirección de correo electrónico aparezca continuamente en SO!

Puede encontrar una solución práctica a menudo mencionada aquí: Cómo encontrar o validar una dirección de correo electrónico .

Extracto:

La virtud de mi expresión regular anterior es que coincide con el 99% de las direcciones de correo electrónico en uso hoy en día. Toda la dirección de correo electrónico que coincide puede ser manejada por el 99% de todo el software de correo electrónico que existe. Si está buscando una solución rápida, solo necesita leer el siguiente párrafo. Si desea conocer todas las compensaciones y obtener muchas alternativas para elegir, siga leyendo.

Vea esta respuesta en SO para una discusión de los méritos del artículo en el enlace anterior. En particular, el comentario fechado el 2012-04-17 dice:

A todos los reclamantes: después de 3 horas experimentando todas las soluciones ofrecidas en esta discusión gigantesca, esta es LA ÚNICA solución de regex de Java buena que puedo encontrar. Ninguna de las cosas rfc5322 funciona en regex java.

Tengo una aplicación web MVC 4 y necesito ingresar y validar algunas direcciones de correo electrónico, sin enviar un correo electrónico a la dirección de correo electrónico del usuario.

Actualmente estoy usando la validación básica de correo electrónico de expresiones regulares con este patrón:

[RegularExpression(@"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z",
        ErrorMessage = "Please enter correct email address")]

Aunque se trata de validar direcciones de correo electrónico, pasa [email protected] como una dirección de correo electrónico válida. Por el momento tengo una validación que requiere símbolos @ símbolos. Símbolos donde los símbolos pueden ser numéricos / alfabéticos y ._-.

Necesito más validación de correo electrónico estándar para mi aplicación MVC 4. ¿Cómo puedo hacer eso?


¿Por qué no usar simplemente el EmailAttribute ?

[Email(ErrorMessage = "Bad email")]
public string Email { get; set; }

Necesitas una expresión regular para esto. Mira here Si está utilizando .net Framework4.5, también puede usar this . Como está construido en .net Framework 4.5. Ejemplo

[EmailAddress(ErrorMessage = "Invalid Email Address")]
public string Email { get; set; }

Regex:

[RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", ErrorMessage = "Please enter a valid e-mail adress")]

O puedes usar solo:

    [DataType(DataType.EmailAddress)]
    public string Email { get; set; }






email-validation