Foros del Web » Programando para Internet » Javascript »

Como hago un comprobador de mail

Estas en el tema de Como hago un comprobador de mail en el foro de Javascript en Foros del Web. Hola, quiero hacer un comprobar de email, osea kiero comprobar si el texto ke pusieron en "mail" es valido, no si existe si esta bien ...
  #1 (permalink)  
Antiguo 11/08/2003, 20:54
 
Fecha de Ingreso: agosto-2003
Mensajes: 5
Antigüedad: 20 años, 8 meses
Puntos: 0
Como hago un comprobador de mail

Hola, quiero hacer un comprobar de email, osea kiero comprobar si el texto ke pusieron en "mail" es valido, no si existe si esta bien escrito. [email protected]
La comprobacion la hago como if mail.indexOf("@") != -1 etc

Existe alguan manera de hacerlo mas facil ? ya que hay muchos caracteres que no soporta un mail y no quiero hacer TODOS los caracteres que existen

existe algo como un codigo asici ?

gracias
  #2 (permalink)  
Antiguo 11/08/2003, 21:05
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años
Puntos: 7
Yo uso esta funcion en el onBlur del campo...

function EmailCheck (emailFld) {
emailStr=emailFld.value;
var checkTLD=1;
var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|c oop|info|pro|museum)$/;
var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var matchArray=emailStr.match(emailPat);
if (matchArray==null) {
if (emailStr=="") {
return true;
} else {
alert("No se ha ingresado un e-mail válido");
return false;
}
}
var user=matchArray[1];
var domain=matchArray[2];
for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
alert("Se han encontrado caracteres no válidos");
return false;
}
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
alert("Se han encontrado caracteres no válidos");
return false;
}
}
if (user.match(userPat)==null) {
alert("El nombre de usuario no parece válido");
return false;
}
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {
for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
alert("IP no parece válida");
return false;
}
}
return true;
}
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
alert("Dominio no parece válido");
return false;
}
}
if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
alert("Terminación no conocida del dominio");
return false;
}
if (len<2) {
alert("No se encuentra dominio");
return false;
}
return true;
}
__________________
No tengo firma ahora... :(
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 23:01.