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;
}

Entries (RSS)