Esiste uno script che controlla la validità di un indirizzo email?
Non mi interessa tanto il fatto che sia esistente quanto che sia scritto correttamente, cioè con la chiocciolina e il .it/.com/.net/.blabla...
![]()
Esiste uno script che controlla la validità di un indirizzo email?
Non mi interessa tanto il fatto che sia esistente quanto che sia scritto correttamente, cioè con la chiocciolina e il .it/.com/.net/.blabla...
![]()
Prova a vedere se questa va bene restituisce true/false in base all'indirizzo passato.
'Controllo la validità dell'indirizzo e-mail
function IsMail(indirizzo)
' ritorna true se l'indirizzo mail è stato verificato
' ritorna false se l'indirizzo mail non è valido
dim atCnt
IsMail = True
' controlla la lunghezza dell'indirizzo mail
if len(indirizzo) < 5 then
' a@b.c può essere l'indirizzo più corto
' address could be
IsMail = False
' controlla il formato verificando che ci sia un solo @
elseif instr(indirizzo,"@") = 0 then
IsMail = False
' controlla che ci si almeno un punto
elseif instr(indirizzo,".") = 0 then
IsMail = False
' controlla che non ci siano più di tre caratteri per l'estensione del dominio
elseif len(indirizzo) - instrrev(indirizzo,".") > 3 then
IsMail = False
' controlla che non ci siano simboli "_" dopo la @
elseif instr(indirizzo,"_") <> 0 and _
instrrev(indirizzo,"_") > instrrev(indirizzo,"@") then
IsMail = False
else
' deve contenere una sola "@"
atCnt = 0
for i = 1 to len(indirizzo)
'se trova la @ incrementa un contatore
if mid(indirizzo,i,1) = "@" then
atCnt = atCnt + 1
end if
next
'se sono state trovate più @ l'indirizzo non è valido
if atCnt > 1 then
IsMail = False
end if
' Controlla ogni carattere per la validità
for i = 1 to len(indirizzo)
if not isnumeric(mid(indirizzo,i,1)) and _
(lcase(mid(indirizzo,i,1)) < "a" or _
lcase(mid(indirizzo,i,1)) > "z") and _
mid(indirizzo,i,1) <> "_" and _
mid(indirizzo,i,1) <> "." and _
mid(indirizzo,i,1) <> "@" and _
mid(indirizzo,i,1) <> "-" then
IsMail = False
end if
next
end if
end function
Ciao![]()
scusate ma per controllare la funzione come faccio?
ho provato in questo modo ma non funziona
controllo=IsMail(var)
if controllo = false then
response.redirect "errore.asp"
end if
Secondo me la soluzione migliore dovrebbe essere una sorta di loop che percorra tutta la stringa, carattere per carattere simulando le espressioni regolari.
Ad esempio:
i = 1
StringaIndirizzoEMail = "nome@dominio.it"
Area = 1
' Area rappresenta l'area della stringa:
' 1 = nome
' 2 = @
' 3 = dominio
Do While i<= Len(StringaIndirizzoEMail)
Carattere = Mid(StringaIndirizzoEMail, i, 1)
Loop
LudoVicoVan
Fai prima ad usare le regular expressions.
http://www.weppos.com/asp/script/scr....asp?script=13