Ciao a tutti,
ho la necessità di eseguire un controllo sul campo email di un form; ho seguito passo passo la guida su asp.html.it http://asp.html.it/articoli/leggi/762/convalida-del-campo-email/4/
ma sto avendo qualche problema, e non riesco a capire dove sta sto problema. Anche se la mail è corretta continua a valutarmela come non valida. Why?!?
Codice:
codice:
Function CheckEmail(strEmail)
Dim blnEmailAccepted
Dim arrNome,szParte,intCount,szChar
blnEmailAccepted = true
'arrNome contiene le due parti dell'email
'divise dal carattere @
arrNome = split(strEmail,"@")
'arrNome[0] = prima parte dell'email
'arrNome[1] = seconda parte dell'email
'Se arrNome <> 1, non è stato inserito il carattere @
If Ubound(arrNome) <> 1 then
blnEmailAccepted = false
Exit Function
End If
For Each szParte in arrNome
'La stringa è vuota (prima o dopo @)
If Len(szParte) <= 0 then
blnEmailAccepted = false
Exit Function
End If
For intCount = 1 to Len(szParte)
'Trasformiamo in lower case perc la successiva verifica dei
'caratteri ammessi in un email con Instr, che è case sensitive
'Mid suddivide in sottostringhe una stringa
szChar = LCase(Mid(szParte,intCount,1))
'Se i caratteri non si trovano nella stringa di controllo, che
'contiene tutti i caratteri ammessi in un email, l'email non è valida
If Instr("abcdefghijklmnopqrstuvwxyz_-.",szChar) <= 0 and not IsNumeric (szChar) then
blnEmailAccepted = false
Exit Function
End If
Next
If Left(szParte,1) = "." or Right(szParte,1) = "." then
blnEmailAccepted = false
Exit Function
End If
Next
'-- Controlli validi solo per la seconda parte dell'email
'Verifichiamo che ci sia un punto
If Instr(arrNome(1),".") <= 0 then
blnEmailAccepted = false
Exit Function
End If
'response.write("Before:" & intCount & "
")
intCount = Len(arrNome(1)) - InStrRev(arrNome(1),".")
'response.write("After:" & intCount)
'La lunghezza del TLD dell'email non è valida
'(TLD = Top-Level Domain)
If intCount <> 2 and intCount <> 3 then
blnEmailAccepted = false
Exit Function
End If
'Ci sono due .. consecutivi: email non valida
If InStr(strEmail,"..") > 0 then
blnEmailAccepted = false
'Exit Function
'Non lo scriviamo, la funzione termina cmq
End If
End Function