Per validare un indirizzo email è possibile utilizare una Regular Expression in VB6 caricando la libreria VBScript Regular Expressions 5.5 library.
E' la strada migliore?
Grazie.
Luciano
Per validare un indirizzo email è possibile utilizare una Regular Expression in VB6 caricando la libreria VBScript Regular Expressions 5.5 library.
E' la strada migliore?
Grazie.
Luciano
Ultima modifica di luciano.net; 27-09-2006 10:40
per validazione intendi il fatto che la stringa debba essere composta da:
[NomeUtente]@[dominio].[estensione]
?
in tal caso potrebbe essere sufficiente l'utilizzo di Like:
Dim IndValido As Boolean Dim addr As String addr = "nomeutente@provider.pr" IndValido = addr Like "*[@]*[.]*"TheTruster
Se vuoi sbizzarrirti...![]()
http://regexlib.com/DisplayPatterns.aspx
HTH
Vorrei controllare la presenza di caratteri non validi, ad es ),;^[+ e altri,
e che non ci sia più di un simbolo @.
Il mio problema è il seguente:
ho scritto un'applicazione che salva dati su un db e utilizza outlook per inviare email. Outlook si bloca se l'indirizzo non è corretto, anche se poi indirizzi con estensione inesistente tenta di inviarli e torenano indietro.
A me è sufficiente che non si blocchi Outlook.
Luciano
allora, mi sa che la funzione Like è troppo poco potente per questa raffinatezza di utilizzo...
la Regular Expression, è la strada più semplice... a meno di non mettersi a scrivere del codice proprio.
con una RegEx ho risolto il problema, inglobandola in una funzione.
ho usato il Late Binding, in modo da non dover includere necessariamente la libreria tra i riferimenti
Function isValidMail(addr As String) As Boolean Dim myRegExp As Object Set myRegExp = CreateObject("VBScript.RegExp") myRegExp.IgnoreCase = True myRegExp.Global = True myRegExp.Pattern = "^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$" isValidMail = myRegExp.Test(addr) Set MyRegExp = Nothing End Functionbasta passare l'indirizzo e-mail alla funzione per averne indietro un True se valida o un False se non lo è.
TheTruster
OK, è la strada che stavo percorrendo anche io, ma con un pattern più restrittivo che non mi convinceva.
Una domanda:
utilizzando il Late Binding come hai fatto tu non devo includere la dll nel pacchetto di installazione, vero?
Si presume quindi che tutti PC hanno necessariamente tale dll installata con il sistema operativo?
Grazie.
Luciano
beh, il supporto al VBScript dovrebbe esistere, almeno nei sistemi operativi recenti, quindi non dovrebbe essere necessario includerla... ma di questo non ne sono assolutamente sicuro
TheTruster