Foros del Web » Programando para Internet » Javascript »

validar email

Estas en el tema de validar email en el foro de Javascript en Foros del Web. Hola: Me gustaría validar el campo email. Que si está vacío no diga nada, puesto que ya tengo una función para los campos vacíos, que ...
  #1 (permalink)  
Antiguo 16/02/2012, 12:46
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 13 años
Puntos: 2
Pregunta validar email

Hola:

Me gustaría validar el campo email. Que si está vacío no diga nada, puesto que ya tengo una función para los campos vacíos, que si es correcto, no mande mensaje y que si es incorrecto, mande un alert. Tengo esta función,va perfecta respecto al tema de no aceptar emails extraños, pero no sé qué tendría que modificar para conseguir exactamente lo que quiero. Un saludo.
Código PHP:
function mostrar_informacion(txt){
    
        
//comprobacion de correo
        
var b=/^[a-zA-Z]([w.-]*)@[a-z]([w-][^._@]*).([a-z]{2,4}([.][a-z]{2})*)$/

        
        
//comentar la siguiente linea si no se desea que aparezca el alert()
        
alert("Email " + (b.test(txt)?"":"no ") + "válido.")
        
//devuelve verdadero si validacion OK, y falso en caso contrario
        
return b.test(txt)
}

<
form name="formulario" action="" onSubmit="return mostrar_informacion(this.email.value)"> </form
  #2 (permalink)  
Antiguo 16/02/2012, 13:57
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: validar email

¿seguro que es una expresión regular correcta?, no soy experto en expresiones regulares, pero probando la suya me rebota hasta la dirección de mail más simple, pero válida.

en dado caso con una simple búsqueda conseguí ésta: /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, fuente: http://www.marketingtechblog.com/jav...-emailaddress/ que funciona perfectamente.

siempre realice pruebas para comprobar la eficacia de las funciones

PD: no colocó el ; al final de la expresión, aún así la suya no me funcionó
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 16/02/2012, 14:45
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 13 años
Puntos: 2
Respuesta: validar email

Hola, gracias por tu apreciación. Te comento, si tú no eres un experto, yo es que ya no sé ni lo que soy, jejeje. Claro que he intentado hacer algunas validaciones, he hecho las mismas con la expresión que tenía que con la que me has dado, y me ha dado los mismos resultados (pero vamos, que puede que no haya comprobado cosas fundamentales, no sé,no tengo experiencia). Y lo del ";" ha sido un error mío al copiarlo, en mi código, sí que aparece. De todas formas, vuelvo a la pregunta inicial, ¿cómo haría para que sólo me saltara el alert cdo es incorrecto, no cuando está vacío o es correcto?
  #4 (permalink)  
Antiguo 16/02/2012, 15:05
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: validar email

ahh!, bueno lo que pasa es que tienes el alert englobando la comprobación con el operador ternario, deberías aplicar bloques if:

Código Javascript:
Ver original
  1. if (! b.test(txt) ) {
  2.      alert('no válido');
  3. }
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 16/02/2012, 22:47
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 13 años
Puntos: 2
Respuesta: validar email

Pero el if tal y como me lo propones, ¿me serviría también para que cdo el campo esté vacío no me mande ningún mensaje?He manejado los if, pero sólo cuando era obligatorio que estuvieran rellenos, por eso te digo.
  #6 (permalink)  
Antiguo 17/02/2012, 14:01
 
Fecha de Ingreso: octubre-2011
Mensajes: 160
Antigüedad: 13 años
Puntos: 2
Respuesta: validar email

Finalmente maycolalvarez, seguí tu consejo, después de mucho pensar, darle vueltas y mirar muchas expresiones regulares, se me encendió una lucecita y ya sé por qué la expresión que me diste era mucho mejor, la primera no contemplaba caracteres que si contempla la segunda. Y te he hecho caso también con lo que me dijiste del alert, además de solucionar lo del campo vacío. Finalmente se ha quedado así y creo que funciona bien, por si a alguien le sirve ;) Por cierto, este código me lo facilitó el miembro jmabreu, todo el mérito es suyo y es un hacha.
Código PHP:
function mostrar_informacion(txt){
    
        
//comprobacion de correo
        
var b= /^([a-zA-ZñÑ0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
 if (
form.email.value == ""

return 
true
   }else{ 
   if (! 
b.test(txt) ) {
            
alert('no válido');
             return 
b.test(txt)
            }
        
        
}
}

<
form action="" name="form" id="form" onSubmit="return mostrar_informacion(this.email.value)">  </form
Eso es todo, gracias por la ayuda. De todas formas, si tenéis algún otro comentario para mejorarlo, se agradece. Saludossss

Etiquetas: javascript-funciones, validar-campos
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 09:38.