Foros del Web » Programando para Internet » Javascript »

Validacion avanzada de mail

Estas en el tema de Validacion avanzada de mail en el foro de Javascript en Foros del Web. Actualmente utilizo en mis forms una simple validacion que corrobora que el campo contenga "@" y con eso ya supera el if. Hay alguna manera ...
  #1 (permalink)  
Antiguo 06/01/2005, 23:30
Avatar de Hurling  
Fecha de Ingreso: noviembre-2004
Ubicación: Córdoba-Argentina
Mensajes: 368
Antigüedad: 19 años, 5 meses
Puntos: 0
Validacion avanzada de mail

Actualmente utilizo en mis forms una simple validacion que corrobora que el campo contenga "@" y con eso ya supera el if. Hay alguna manera de otimizar esta validacion y que no se preste a errores con direcciones tipo "[email protected]"

Muchas gracias
  #2 (permalink)  
Antiguo 08/01/2005, 01:55
Avatar de TurKa  
Fecha de Ingreso: enero-2003
Ubicación: Gerli, Avellaneda
Mensajes: 543
Antigüedad: 21 años, 3 meses
Puntos: 4
Lo único que puedes hacer con JavaScript es comprobar que el "formato" del e-mail sea válido. hora, si yo escribo "[email protected]" la única forma de saber si la dirección "existe o no" será enviando un mail automático a esta persona para que realice algún tipo de comprobación. Pero esto lo puedes hacer con lenguajes que se procesen del lado del servidor como ASP o PHP, por ejemplo.

Para comprobar que un mail tenga formato válido, puedes encontrar mil rutinas hiper complejas por ahí, y sino, simplemente crearlo tu. Por ejemplo:

Código HTML:
<SCRIPT LANGUAJE="JavaScript">
function validarMail(form) {
m1 = form.email.value.indexOf('@', 1) == -1; //se fija si contiene la arroba
d2 = (form.email.value.indexOf('@', 1) == 1)+2; //se fija si la @ está al menos a dos caracteres
m2 = form.email.value.indexOf('.', d2) == -1; // verifica que contenga un punto
m3 = form.email.value.length < 7; // verifica que al menos tenga 7 caracteres en total ¿Por qué? una dirección con un mínimo de caracteres para que sea valida, será [email][email protected][/email]

if(m1||m2||m3) {
alert("El e-mail ingresado no es válido."); form.email.focus(); return true;
}
}
</SCRIPT> 
Por ejemplo, una cuenta válida será:
[email protected]

Pero no será válida @a.yo.es por más que tenga la arroba, el punto y que la cantidad de caracteres alcanse el mínimo necesario.
__________________
Programación LAMP con Scrum y XP
www.eugeniabahit.com.com.ar
  #3 (permalink)  
Antiguo 08/01/2005, 06:44
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Hola, puedes utilizar expresiones regulares para validar tu los emails, aquí te envío un función:

Código:
 function checkEmail(email){
 	if (email.search(/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/gi)) {
 		return false;
 	}
 	return true;
 }
Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #4 (permalink)  
Antiguo 08/01/2005, 12:45
Avatar de Hurling  
Fecha de Ingreso: noviembre-2004
Ubicación: Córdoba-Argentina
Mensajes: 368
Antigüedad: 19 años, 5 meses
Puntos: 0
Espectacular ! muchas gracias TurKa y xKnown, me sirve mucho !
Gracias de nuevo.Saludos
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 06:56.