Validar email con jQuery
En este artículo vamos a ver como validar un campo o input de tipo email de un formulario con jQuery.
En el ejemplo vamos a ver como tras pulsar un botón pasamos a validar el campo email con jQuery.
Fíjate en el código que deberemos añadir en el <head> de nuestra página:
<script type="text/javascript" src="../jquery.js"></script> <script type="text/javascript"> $(document).ready(function() { $('#send').click(function(){ if($("#email").val().indexOf('@', 0) == -1 || $("#email").val().indexOf('.', 0) == -1) { alert('El correo electrónico introducido no es correcto.'); return false; } alert('El email introducido es correcto.'); }); }); </script>
La clave del asunto está en la validación del email, en la condición que no se debe cumplir para no mostrar una alerta y retornar falso.
En nuestro <body> tendremos el formulario con el input y link o botón.
<form id="form" method="post"> <label>Email:</label> <input type="text" name="email" id="email" /> <a id="send">Enviar</a> </form>
Si no queda claro puedes ver el ejemplo en funcionamiento.
Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
Lo sometí a una sola prueba y falló: @.comxxxxx
Capo puedo ingresar este valor
jjajaja@.com
deberia ser un NO correcto.
tiene un problema de validacion cuando ingresas antes del @ un punto pasa igual la validacion por ejemplo : programador.web@gamil no deberia pasar y pasa.
Excelente aporte José, una inquietud como debe quedar el scrip si se deseara validar dos dominios del correo electrónico, me explico validar que los correos deben ser @hotmail.com o @gmail.com únicamnete? De antemano muchas gracias.
Hola,
No estoy seguro si habrá algo preparado para ello pero no resultaría complicado hacer una función de validación usando la función explode() de PHP para dividir la cadena por el «@» y comparar la segunda parte del array resultante.
Saludos
«@.» ese valor lo pasa como valido
Hola juan todo bien
Esta es la versión más completa que valida lo que indican, puntos y otros casos:
if (ValidaEmail($(«#Txt_Correo»).val()) == false)
{
alert(‘Ingrese un correo válido.’);
$(«#Txt_Correo»).focus();
return false;
}
function ValidaEmail(email) {
var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
gracias por la aportación
Tiene un problema de validación, cuando indico un correo asi > («ejemplo@ejemplo.») , lo marca como un correo valido
Pues no se cual sea el problema que le vió Gabriel pero el que yo le encontré es que si en el campo yo escribo unicamente .@ eso lo detecta como un correo!!!
lo que hace es que busca que existan esos caracteres pero no valida que tengan la esctructura correcta
Saludos
Muy bueno el Script aunque verdaderamente tiene un problema de validacion…
Saludos, corrigelo por favor
Nos puedes indicar que problema hay?