Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: andy60 - 11 Settembre 2010, 08:26:47

Titolo: Controllo validità email
Inserito da: andy60 - 11 Settembre 2010, 08:26:47
Se a qualcuno serve ho questa funzione di controllo per le date, mi servirebbe una funzione che mi controlla la validità dell'indirizzo email.
Thx

Codice: [Seleziona]
PUBLIC FUNCTION ControlloData(sData AS String) AS Boolean
DIM sDati AS String[]
DIM sValori AS Variant[]
sDati = Split(sData, "/")
IF sData LIKE "[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]" THEN
  IF CheckDate(sDati[0], sDati[1], sDati[2]) = TRUE THEN
    RETURN FALSE
  ELSE
    RETURN TRUE
  ENDIF     
ELSE
  RETURN TRUE
ENDIF 
END
Titolo: Re: Controllo validità email
Inserito da: Ceskho - 11 Settembre 2010, 14:47:12
TI butto giù due punti su cui lavorare per la tua funzione:

- Un indirizzo email ha solo una @...se ne ha più di una già non è più valido.
- Non contiene caratteri speciali
- Non contiene lettere accentate
- Il nome utente (ciò che precede la @) deve essere almeno di 3 caratteri
- Il nome dominio (ciò che segue la @) deve essere almeno di 3 caratteri
- Il nome dominio deve contenere almeno un .

Questo è ciò che mi viene in mente....
Titolo: Re: Controllo validità email
Inserito da: giulio - 11 Settembre 2010, 17:10:47
C'è un esempio che fa al caso tuo usando il componente gb.pcre:

http://gambasdoc.org/help/comp/gb.pcre/regexp

oppure usare SHELL e un grep (visto sul web):

grep '^[a-zA-Z0-9._%+-]*@[a-zA-Z0-9]*[\.[a-zA-Z0-9]*]*[a-zA-Z0-9]$'

ciao

EDIT: il comando grep è sbagliato!
Titolo: Re: Controllo validità email
Inserito da: giulio - 11 Settembre 2010, 17:36:33
Ho trovato pure una risposta di Rob Kudla (autore di gb.pcre) proprio riguardante il tuo quesito:

http://www.mail-archive.com/gambas-user@lists.sourceforge.net/msg03158.html
Titolo: Re: Controllo validità email
Inserito da: andy60 - 11 Settembre 2010, 17:53:18
grazie, mi era sfuggita :2birre: ma non va..l'avete provata?
Titolo: Re: Controllo validità email
Inserito da: giulio - 11 Settembre 2010, 18:25:19
Codice: [Seleziona]
PUBLIC SUB Main()
 
  DIM myemail AS String
  DIM validemail AS String
  DIM re AS RegExp
 
  myemail = "f...@bar."
 
  re = NEW RegExp(myemail, "(?i)\\b[a-z0-9._%\\-]+@[a-z0-9._%\\-]+\\.[A-Z]{2,4}\\b")
 
  validemail = re.Text
 
  IF NOT validemail THEN
    PRINT myemail & " is not a legal email address.\n"
  ELSE
    PRINT myemail & "\n"
  END IF
 
END



A me questo funziona. Devi abilitare il componente gb.pcre, ma questo lo sai.
Titolo: Re: Controllo validità email
Inserito da: andy60 - 11 Settembre 2010, 22:44:04
funziona, domani lo uso, grazie :2birre: