Buenas!!
EStoy en la busqueda de una funcion que valide el mail y ande. Y no estoy con suerte.... Alguno me podria dar una manito?
Gracias!!
| |||
Re: Busqueda de validacion de email Con el google se encuentran fácilmente. Aquí tienes un enlace con una rutina de validación de e-mail mediante expresión regular: http://javascript.internet.com/forms...n---basic.html |
| ||||
Re: Busqueda de validacion de email <!-- DOS PASOS PARA VALIDAR LA DIRECCION DE EMAIL: 1. Copiar el script dentro del <HEAD></HEAD> 2. Copiar el código del formulario dentro de <BODY></BODY> --> 1.Script de Validación <HEAD> <SCRIPT LANGUAGE="Javascript"> <!-- Principio function emailCheck (emailStr) { /* Verificar si el email tiene el formato user@dominio. */ var emailPat=/^(.+)@(.+)$/ /* Verificar la existencia de caracteres. ( ) < > @ , ; : \ " . [ ] */ var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]" /* Verifica los caracteres que son válidos en una dirección de email */ var validChars="\[^\\s" + specialChars + "\]" var quotedUser="(\"[^\"]*\")" /* Verifica si la dirección de email está representada con una dirección IP Válida */ var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/ /* Verificar caracteres inválidos */ var atom=validChars + '+' var word="(" + atom + "|" + quotedUser + ")" var userPat=new RegExp("^" + word + "(\\." + word + ")*$") domain, as opposed to ipDomainPat, shown above. */ var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$") var matchArray=emailStr.match(emailPat) if (matchArray==null) { alert("Email address seems incorrect (check @ and .'s)") return false } var user=matchArray[1] var domain=matchArray[2] // Si el user "user" es valido if (user.match(userPat)==null) { // Si no alert("El nombre de usuario no es válido.") return false } /* Si la dirección IP es válida */ var IPArray=domain.match(ipDomainPat) if (IPArray!=null) { for (var i=1;i<=4;i++) { if (IPArray[i]>255) { alert("IP de destino inválida") return false } } return true } var domainArray=domain.match(domainPat) if (domainArray==null) { alert("El dominio parece no ser válido.") return false } var atomPat=new RegExp(atom,"g") var domArr=domain.match(atomPat) var len=domArr.length if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) { alert("La dicrección debe tener 3 letras si es ."com" o 2 si en de algún pais.") return false } if (len<2) { var errStr="La dirección es erronea" alert(errStr) return false } // La dirección de email ingresada es Válida return true; } // End --> </script> </head> <!-- PASO DOS: Archivo HTML --> <BODY> <center> <form name=emailform onSubmit="return emailCheck(this.email.value);"> Your Email Address: <input type=text name="email"><br> <input type=submit value="Submit"> </form> </center> esto no me recuerdo de donde lo obtuve... pero ahi te lo envio espero que te ayude bye |
| ||||
Re: Busqueda de validacion de email Gracias a ambos por la ayuda.... Parece haber un problema con esta parte (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(myForm.emailAddr.value)) Yo reemplazo este campo myForm.emailAddr.value, por el que corresponde y me tira que no esta declarado Última edición por Spookysama; 10/08/2007 a las 14:54 Razón: faltaban datos |
| ||||
Re: Busqueda de validacion de email Creo que el error está en que te direges al objecto como document.elementById("emailAddr").value cuando tendrías que hacerlo como nombreform.nombrecampo.value Suerte
__________________ Los formularios se envían/validan con un botón Submit <input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" /> |
| ||||
Re: Busqueda de validacion de email asi lo estoy llamando myForm.emailAddr.value Pero creo q el error esta en la sentencia del principio (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/. ------------------------------------------------------------ Bueno de la web saque esta funcion y la adapte a mi form Código HTML: function validarmail(contactomail) { var re = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/; if (!re.test(contactomail)) { alert ("Dirección de email inválida"); form.contactomail.focus(); return false; } } Lo llamo en el OnFocus Código HTML: <input id="contactomail" name="contactomail" type="text" size="30" onfocus="validarmail(this.form.contactomail)" maxlength="30" /> Cuando se sale del focus sale el alert pero no me hace foco en el campo como le pido en " form.contactomail.focus(); " Y el formulario se envia igual aunque tenga mal la direccion. Alguna ayudita? Gracias!! Última edición por Spookysama; 12/08/2007 a las 06:41 |
| |||
Re: Busqueda de validacion de email En principio, no lo veo un método muy ortodoxo. Haces que validarmail() se ejecute cuando el campo del email recibe el foco, o sea, se ejecuta incluso antes de escribir nada, con lo que antes que el usuario haya introducido la dirección completa, te dirá dirección inválida, lo cual no tiene mucho sentido. Yo utilizaría el manejador de eventos onblur o onchange en vez de onfocus. Es decir, que evalúe en el momento que cambie el valor, o de perder el foco, no de obtenerlo. Por otro lado, el método focus() por desgracia no funciona bien en Firefox. En IE sí te debería de funcionar. Hay por ahí algún truco para arreglarlo. Voy a mirar... |
| ||||
Re: Busqueda de validacion de email Hola, mira te imprimo el código tal y como ha de quedar Código PHP: Suerte
__________________ Los formularios se envían/validan con un botón Submit <input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" /> |
| ||||
Re: Busqueda de validacion de email En realidad no se dodne llamarlo para que sea mas eficiente... me dijeron q use el focus por eso lo puse ahi. voy a probar como me dicen mas arriba de usar onblur Gracias a todos por sus respuestas! |
| |||
Re: Busqueda de validacion de email He visto otro pequeño error: <input id="contactomail" name="contactomail" type="text" size="30" onblur="validarmail(this.form.contactomail.value)" maxlength="30" /> antes estabas pasando como argumento el objeto campo de texto, no su valor. En cuanto a lo de Firefox, he visto una posible solución que hay por ahí y dicen que funciona, pero a mí no me ha ido ![]() cambiar emailform.contactomail.focus() por setTimeout('emailform.contactomail.focus()', 100); a ver si alguien da con una solución para Firefox. ![]() |
| ||||
Re: Busqueda de validacion de email Y sino la otra seria agarrar la funcion q tengo Validar (form) y meterle adentro la de validar mail pero no se si se puede ni como :S
Código:
function Validar(form) { if (form.contactonombre.value == "") { alert("Por favor ingrese su nombre"); form.contactonombre.focus(); return false; } if (form.contactomail.value == "") { alert("Por favor ingrese su dirección de e-mail"); form.contactomail.focus(); return false; } if (form.direccion.value == "") { alert("Por favor ingrese la direccion"); form.direccion.focus(); return false; } if (form.nombre.value == "") { alert("Por favor ingrese el nombre del negocio"); form.nombre.focus(); return false; } if (form.rubro.selectedIndex==0) { alert("Por favor ingrese el rubro"); form.rubro.focus(); return false; } if(form.descripcion.value.length < 20 || form.descripcion.value.length > 200) { alert("El campo descripcion debe contener entre 20 y 200 Caracteres"); form.descripcion.focus(); return false; } else { form.submit(); } } |