Comprobando una dirección e-mail

Esta es una función que puede resultar bastante útil para comprobar direcciones de correo. Se trata de ver si una dirección de email contiene caracteres correctos y sigue el esquema habitual: usuario@servidor, usuario y servidor podrán contener caracteres alfanuméricos mas _ (guión bajo) y - (guión normal)

El núcleo de este ejemplo están en el uso de expresiones regulares.

Solución

<script>

function checkMail(cadena) {

let plant = /[^\w^@^\.^-]+/gi

if (plant.test(cadena))

     alert(cadena + " contiene caracteres extraños.")

else{

     plant =/(^\w+)(@{1})([\w\.-]+$)/i

     if (plant.test(cadena))

         alert(cadena + " es correcta.")

     else

         alert(cadena + " no es válida.")

    }

}

</script>

<body>

<form name="form1" method="post" action="">

Introduce tu e-mail

<input type="text" name="email">

<input type="button" name="Button" value="Comprobar" onclick="checkMail(this.form.email.value)">

</form>

</body>

Explicación

La función checkMail() comprueba primero si existe algún carácter extraño para lo cual usa la expresión regular: /[^\w^@^\.^-]+/gi , comprueba si existe algún carácter no alfanumérico, o diferente de @, del punto o del guión.

Una vez ha comprobado los caracteres del email pasa a comprobar la estructura de la cadena mediante otra expresión regular, en este caso comprueba que la cadena comienza con un carácter alfanumérico (^ indica aquí inicio de cadena y \w caracteres alfanuméricos) seguido de otros similare. Este grupo debe ir seguido por un sólo símbolo arroba (@{1}) tras el cual puede existir cualquier grupo de alfanuméricos incluido el punto o el guión ( [\w\.-]) hasta llegar al final de la cadena ($).

Si tienes dudas consulta el apartado descriptivo de las expresiones regulares y el dedicado a sus métodos.