function ChecaMail (emailStr) { 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) { return false; //"Correo incorrecto, cheque las @ y los ." } var user=matchArray[1] var domain=matchArray[2] if (user.match(userPat)==null) { return false; //"Correo incorrecto, cheque las @ y los ." } var IPArray=domain.match(ipDomainPat) if (IPArray!=null) { for (var i=1;i<=4;i++) { if (IPArray[i]>255) { return false; //"IP Destino no valido en el correo" } } return true; } var domainArray=domain.match(domainPat) if (domainArray==null) { return false; //"Al parecer el dominio del correo no es valido" } 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) { return false; //"el final del correo debe de ser de 3 letras o 2 letras del pais" } if (len<2) { return false; //"El nombre del host, dentro del correo es incorrecto" } return true; }