Foros del Web » Programando para Internet » Javascript »

Validacion email, mas compleja

Estas en el tema de Validacion email, mas compleja en el foro de Javascript en Foros del Web. Bueno gente! casi nada de javascript. haci que una manito por favor. Codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < script language = "JavaScript" ...
  #1 (permalink)  
Antiguo 17/03/2010, 20:05
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 13 años, 3 meses
Puntos: 89
Validacion email, mas compleja

Bueno gente! casi nada de javascript. haci que una manito por favor.
Codigo:
Código Javascript:
Ver original
  1. <script language="JavaScript">
  2.    function validar_email() {
  3.     if (document.formu.EMAIL.value.indexOf('@') == -1){
  4.      alert ("Debes colocar una \"Dirección de Email\" válida");
  5.      document.formu.EMAIL.focus(); //Esto recorna el cursor al campo "Email"
  6.     } else {
  7.      if (document.formu.EMAIL.value.indexOf('.') == -1){
  8.      alert ("Debes colocar una \"Dirección de Email\" válida");
  9.      document.formu.EMAIL.focus(); //Esto recorna el cursor al campo "Email"
  10.    } else {
  11.      if (document.formu.EMAIL.value.indexOf('yahoo'; 'hotmail'; 'gmail'; 'live')  == -1){
  12.      alert ("Debes colocar una \"Dirección de Email\" válida");
  13.      document.formu.EMAIL.focus(); //Esto recorna el cursor al campo "Email"
  14.     } else {
  15.    
  16.      document.formu.submit();
  17.     }}}
  18.    }
  19.   </SCRIPT>
  20.  </HEAD>
  21.  <BODY>
  22.   <script language="JavaScript">
  23.    var w = 300;
  24.    var h = 80;
  25.    resizeTo(w, h);
  26.    moveTo((screen.width - w)/ 2, (screen.height - h)/ 2);
  27.   </script>

Como veran en la fila 11, le mande fruta....
la idea es que solo puedan validad emails : gmail, hotmail, yahoo, live...

Me ayudan por favor. Saludos
  #2 (permalink)  
Antiguo 17/03/2010, 21:09
 
Fecha de Ingreso: julio-2008
Mensajes: 91
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: Validacion email, mas compleja

Hola amigo, espero que esto te sirva de ayuda:

Antes que nada queria decirte que asi no se utiliza la metodo indexOf, solo debes poner una sola cadena, mucho menos separar cada texto con ";"

Ahora si lo que tienes que hacer es lo siguiente:

Código Javascript:
Ver original
  1. //Esto lo colocas dentro de tu funcion validar_email,
  2. al comienzo antes de las condicionales*/
  3.  
  4. //Primero creamos una cadena (texto) con los correos que solo quieres
  5.     var correos="yahoo hotmail gmail live";
  6. /*Luego dividimos por el @ el contenido del email con la metodo split y lo
  7. guardamos en la variable dominio*/
  8.     var dominio=document.formu.EMAIL.value.split("@");
  9. /*Ahora en dominio[1] contiene 'dominio.com' lo volvemos a dividir para obtener
  10. el dominio de correo lo que esta antes del punto, tambien con el metodo split.*/
  11.     var server=dominio[1].split(".");
  12. /*Finalmente verificamos si server[0] que contiene el dominio de correo esta
  13. dentro del textio correos con la funcion match, el resultado se almacena en res*/
  14.     var res=correos.match(server[0]);

La funcion match si no encuentra el texto dentro de la cadena, devuelve null

Entonces en la línea 11 colocas la condicion:

Código Javascript:
Ver original
  1. if (res==null)

Supongo que habra otras maneras, espero te sirva.

Saludos..
  #3 (permalink)  
Antiguo 17/03/2010, 21:33
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 15 años, 2 meses
Puntos: 67
Respuesta: Validacion email, mas compleja

Mejor busca en google: Validar email con JavaScript y saldrá una función más eficiente y simple que esa.
  #4 (permalink)  
Antiguo 18/03/2010, 02:06
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 14 años, 5 meses
Puntos: 2
Respuesta: Validacion email, mas compleja

Hola Sir Duque.

No sabría decirte si ésta es más o menos eficiente pues javascript no es mi fuerte, pero io la utilizo en todos mis scripts y me va muy bien.
Código Javascript:
Ver original
  1. function validaEmail(valor)
  2.     {
  3.         if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor))
  4.         {
  5.             document.getElementById("emailmsg").style.color= '#646464';
  6.             return (true);
  7.         }
  8.         else
  9.         {
  10.             document.getElementById("email").value = "";
  11.             document.getElementById("emailmsg").style.color='red';
  12.             return (false);
  13.         }
  14.     };

Lo que hace es que, en un evento onblur del input del email iama a la función y si es válido colorea el label que lo precede de un tono azul grisáceo y devuelve true. Si no lo es, colorea el mismo label de rojo y devuelve false.

Espero que te sirva.
Un saludo!!
  #5 (permalink)  
Antiguo 18/03/2010, 11:03
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Validacion email, mas compleja

me salta siempre no pusiste punto de la linea 12....
te interprete mal raul (?)

Código Javascript:
Ver original
  1. <script language="JavaScript">
  2.   var correos="yahoo hotmail gmail live";
  3.   var dominio=document.formu.EMAIL.value.split("@");
  4.   var server=dominio[1].split(".");
  5.   var res=correos.match(server[0]);
  6.    function validar_email() {
  7.     if (document.formu.EMAIL.value.indexOf('@') == -1){
  8.      alert ("error no tiene arroba");
  9.      document.formu.EMAIL.focus();
  10.     } else {
  11.      if (document.formu.EMAIL.value.indexOf('.') == -1){
  12.      alert ("falta el punto");
  13.      document.formu.EMAIL.focus();
  14.    } else {
  15.      if (res==null){
  16.      alert ("no pusistenada");
  17.      document.formu.EMAIL.focus();
  18.     } else {
  19.    
  20.      document.formu.submit();
  21.     }}}
  22.    }
  23.   </SCRIPT>

aniMAYtions:

como complemento ese script por que no lo pude hacer andar.


les dejo el body

Código HTML:
Ver original
  1. <BODY><FORM NAME="formu" METHOD="POST" ACTION="Tu.Accion">
  2.    Ingresa tu Email: <INPUT NAME="EMAIL" TYPE="text"><BR>
  3.  
  4.    <INPUT type="button" name="ENVIAR" value="Agregar" onClick="JavaScrpit:validar_email();">
  5.   </FORM>
  6.  </BODY>

Etiquetas: email, mas
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 14:52.