Futuraweb, extend you brand online

Sempre più spesso si ha la necessità di controllare che un indirizzo email inserito dall’utente sia valido. Ecco una semplice funzione che svolge egregiamente questo compito.

function emailCheck (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)
   {
       alert("L'indirizzo email non sembra corretto. Ricontrolla.")
       return false
   }
   var user=matchArray[1]
   var domain=matchArray[2]

   if (user.match(userPat)==null)
   {
       alert("Il nome utente non sembra corretto.")
       return false
   }

   var IPArray=domain.match(ipDomainPat)
   if (IPArray!=null)
   {
       for (var i=1;i<=4;i++)
       {
           if (IPArray[i]>255)
           {
               alert("L'IP di destinazione non e` corretto.")
               return false
           }
       }
       return true
   }

   var domainArray=domain.match(domainPat)
   if (domainArray==null)
   {
       alert("Il nome del dominio non sembra valido.")
       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("L'indirizzo email deve terminare con un
       dominio di tre lettere (.com, .net, etc...) o con due lettere
       per i domini nazionali (.it, .fr, etc..).")
       return false
   }

   if (len<2)
   {
       var errStr="Queto indirizzo non presenta il nome dell'host!"
       alert(errStr)
       return false
   }

   return true;
}

Leave a Reply