none
Validar letra ñ o Ñ en correo electronico RRS feed

  • Pregunta

  • HOLA
    estoy desarrollando una aplicacion que valida correos electronicos,

    necesito validar no solo la estructura del correo sino que no contenga la letra Ñ (mayuscula o minuscula), estoy usando la funcion Regex y le asigno lo siguiente:


    Regex rexEmail = new Regex(@"^[a-zA-Z][\w\.-]{2,28}[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$");

    he probado con esta otra :

    Regex rexEmail = new Regex("\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
    
    string miEmail = "micorreoconÑñ@gmail.com";
     if (!rexEmail.IsMatch(miEmail))
         {
          Messagebox.Show("error correo electronico invalido");
          }



    pero ambas no me alertan que el correo es invalido. si valida la estructura pero no el caracter Ññ

    alguna forma de hacerlo??



    miércoles, 17 de enero de 2018 16:56

Respuestas

  • Puede que el problema esté en los \w que tienes en la expresión. Significa "Any Word Character", e incluye los caracteres Unicode, por lo que la Ñ es un "match". Prueba a cambiar las \w por [a-zA-Z0-9].

    Y por cierto, ten presente que esa expresión rechazará muchos emails que son perfectamente legítimos, por ejemplo, los que comiencen por un número, o los que tengan caracteres tales como guiones o guiones bajos, o llaves, y muchos otros. La recomendación que se hace en las RFC es que solo debes validar lo que hay a la derecha de la @. Lo que hay a su izquierda es de la exclusiva competencia del servidor de destino, el cual puede aceptar cualesquiera caracteres que considere oportunos (excepto un pequeño número que requieren ser escapados debidamente, como por ejemplo una segunda @).

    miércoles, 17 de enero de 2018 17:28
    Moderador