Foros del Web » Programando para Internet » Javascript »

Validación formato email

Estas en el tema de Validación formato email en el foro de Javascript en Foros del Web. Hola a tod@s, tengo un formulario de registro donde los usuarios deben poner su email y tengo un javascript que comprueba que tenga un formato ...
  #1 (permalink)  
Antiguo 07/06/2010, 03:26
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
Validación formato email

Hola a tod@s, tengo un formulario de registro donde los usuarios deben poner su email y tengo un javascript que comprueba que tenga un formato correcto, el problema ha venido cuando intenta registrarse alguien con un correo del tipo "[email protected]" que me dice que no tiene un formato correcto.
La función de comprobación es la siguiente:

Código PHP:
    var regexp = /^[0-9a-zA-Z._]+@[0-9a-zA-Z]+.[0-9a-zA-Z.]+$/; 
        if ((
regexp.test(document.forms[0].usuario.value) == false) || (document.forms[0].usuario.value.length 0)) 
        { 
        
alert("El nombre de usuario debe de ser formato correo."); 
        
document.registro.email.focus(); 
        return 
false
        } else { 
        var 
c_email=true
        } 
¿Cómo debería modificarla para que también acepte ese formato de correo?

Muchas gracias por adelantado, salu2
__________________
Vayamos por Partes :: Jack el Destripador
  #2 (permalink)  
Antiguo 07/06/2010, 04:05
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Validación formato email

el formato que has puesto de ejemplo me valida bien con la expresion regular.
Código:
alert(/^[0-9a-zA-Z._]+@[0-9a-zA-Z]+.[0-9a-zA-Z.]+$/.test("[email protected]"));
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 07/06/2010, 04:13
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
Respuesta: Validación formato email

Uy, pues a mi me da el alert como que debe ser con formato correo y no me deja seguir :|
__________________
Vayamos por Partes :: Jack el Destripador
  #4 (permalink)  
Antiguo 07/06/2010, 04:23
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Validación formato email

ehhh, ¿que quisistes decir? ¿el alert te muestra false? a mi me muestra true, significando que el formato es correcto.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 07/06/2010, 04:25
Avatar de angel_dope  
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 21 años, 5 meses
Puntos: 8
Respuesta: Validación formato email

Si yo pongo ese formato de correo, me muestra el alert, es decir, no lo toma como válido, cuando si que debería dejar poner ese formato.
Este control está por si alguien intenta registrarse con un usuario que no es un email, por ejemplo, si en la casilla usuario me ponen angel_dope, no es válido y no deja seguir. Sin embargo si pongo [email protected], pues si que deja. En este caso, al poner un email con el formato indicado en el primer post, no deja seguir tampoco, no lo reconoce como un email válido.
__________________
Vayamos por Partes :: Jack el Destripador
  #6 (permalink)  
Antiguo 07/06/2010, 04:49
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Validación formato email

no creo que sea ahi donde este el problema. si comprobamos las cosas por partes, veras que trabaja bien. otra forma de comprobar la expresion es determinar que es lo que esta pareando la expresion. en este ejemplo el alert debe mostrarte el correo electronico. lo unico diferente es que la expresion no tiene anclas (^$) y le he agregado un poco mas de texto.
Código:
alert("el correo electronico [email protected] es un ejemplo de prueba".match(/[0-9a-zA-Z._]+@[0-9a-zA-Z]+.[0-9a-zA-Z.]+/)[0]);
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 07/06/2010 a las 04:56
  #7 (permalink)  
Antiguo 07/06/2010, 07:06
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 13 años, 10 meses
Puntos: 310
Respuesta: Validación formato email

Cita:
Iniciado por angel_dope Ver Mensaje
var regexp = /^[0-9a-zA-Z._]+\@[0-9a-zA-Z]+\.[0-9a-zA-Z.]+$/;
if ((regexp.test(document.forms[0].usuario.value) == false) || (document.forms[0].usuario.value.length = 0))
{
alert("El nombre de usuario debe de ser formato correo.");
document.registro.email.focus();
return false;
} else {
var c_email=true;
}
Puede ser que el error esté en 'document.forms[0].usuario.value.length = 0'.
'=' es el operadro de asignación, '==' es el de comparación.
Saludos (:

Etiquetas: email, formato, validar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:26.