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.