Autore Topic: Controllo validità email  (Letto 1046 volte)

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Controllo validità email
« il: 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

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Controllo validità email
« Risposta #1 il: 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....

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: Controllo validità email
« Risposta #2 il: 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!
« Ultima modifica: 11 Settembre 2010, 17:57:23 da giulio »

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: Controllo validità email
« Risposta #3 il: 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

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Controllo validità email
« Risposta #4 il: 11 Settembre 2010, 17:53:18 »
grazie, mi era sfuggita :2birre: ma non va..l'avete provata?
« Ultima modifica: 11 Settembre 2010, 18:21:33 da andy60 »

Offline giulio

  • Maestro Gambero
  • ****
  • Post: 280
    • Mostra profilo
Re: Controllo validità email
« Risposta #5 il: 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.

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Controllo validità email
« Risposta #6 il: 11 Settembre 2010, 22:44:04 »
funziona, domani lo uso, grazie :2birre: