miércoles, 21 de octubre de 2009

Validar mail con expresion regular.

Vamos a ver 1 método para validar, mediante una expresión regular una dirección de correo electrónico, la expresión en sí, es una rápida puesta de ejemplo, que funciona bien, pero por internet se pueden encontrar muchas más, desde algunas que no van, hasta incluso algunas más optimas, esto es un ejemplo para una solución rápida o de iniciativa a usar E.R.

Primero de todo, hay que añadir en la cabecera de las librerías la siguiente para poder usar los objetos y métodos específicos de las clases regulares:

using System.Text.RegularExpressions;

Este es el método en si, se le pasa una cadena de texto por parámetro, y devuelve en un booleano true, si cumple con la expresión o false en caso contrario.


private static bool validarEmail(string email)
{
bool salida = false;
//expresion regular
string expresion = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
if (Regex.IsMatch(email, expresion) && (Regex.Replace(email, expresion, String.Empty).Length == 0))
salida = true;
return salida;
}

Ahora ya, cuando queramos comprobar si una cadena por ejemplo "jamon", es un mail válido, haremos
validarEmail("jamon"), y esto nos devolverá "false" obviamente.

4 comentarios:

  1. Hola,
    si por ejemplo queiro que sólo acepte emails de la forma: @miempresa.com
    cómo tendria que poner la exspresión regular??
    gracias

    ResponderEliminar
  2. Pues prueba con \@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)* no lo probe pero quitando lo que esta delante del @

    ResponderEliminar
  3. Hola, estoy tratando de pasar tu código a VB6 (oh-oh). ¿Hay alguna expresión regular, en VB6, para esto?

    ResponderEliminar
  4. Hola, estoy tratando de convertir este código a otro lenguaje. ¿Sabes si hay alguna expresión en VB6? Gracias

    ResponderEliminar