PDA

Visualizza la versione completa : controllo data


roboro
10-01-2005, 10:35
Ciao a tutti,

come faccio con le reg exp a controllare che una variabile abbia la forma corretta di un indirizzo email?

grazie mille

Claudio Vituzzi
10-01-2005, 10:57
Io vado ancora avanti con una sub che Kintaro pubblicò su questo forum 2 e passa anni fa:



sub is_email ($) {
$_ = shift;
s/(^\s+)|(\s+$)//g; # decommentare per IGNORARE gli spazi prima e dopo la stringa da controllare
$ip = '([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])';
$ok = '[\w\$\-\.\&\+\*\"\'\(\)\,]'; # caratteri validi a sinistra della '@'
return 0 if (/(@\.)|(\.@)|(@.*_)|(^_)|(\.\.)/);
return 1 if (/^[\w"]$ok*@(([\w\-\.]+\.[a-z]{2,4})|(\[($ip\.){3}$ip\]))$/i);
return 0
}


a me poi basta fare:



my $email; # la variabile che contiene l'email...

if ( is_email ( $email ) )
{
# Sintassi corretta
} else {
# Sintassi errata
}


Ciao

roboro
10-01-2005, 10:59
fantastico


grazie mille

roboro
10-01-2005, 11:07
Per far tornare 3 se l' email non è valida, dove devo modificare la funzione?

sub is_email ($) {
$_ = shift;
s/(^\s+)|(\s+$)//g; # decommentare per IGNORARE gli spazi prima e dopo la stringa da controllare
$ip = '([1-9]?\d|1\d\d|2[0-4]\d|25[0-5])';
$ok = '[\w\$\-\.\&\+\*\"'\(\)\,]'; # caratteri validi a sinistra della '@'
return 0 if (/(@\.)|(\.@)|(@.*_)|(^_)|(\.\.)/);
return 1 if (/^[\w"]$ok*@(([\w\-\.]+\.[a-z]{2,4})|(\[($ip\.){3}$ip\]))$/i);
return 0
}

roboro
10-01-2005, 11:20
come mai il perl -c mi da errore sulla funzione?


io l' ho copiata pari pari...

Claudio Vituzzi
10-01-2005, 11:35
Perchè il forum ha tralasciato qualche carattere ..

prova a questo indirizzo:

http://80.117.236.103:2234/check_email.txt

(rimarrà disponibile per 30 minuti)

Ciao

roboro
10-01-2005, 11:39
dall' ufficio ho la rete limitata, me lo lasci fino alle 12:40?

cosi riesco ad accederci nell' ora di libera navigazione...

grazie

roboro
10-01-2005, 11:40
oppure qualore fosse possibile me lo alleghi al mess del forum§?

Claudio Vituzzi
10-01-2005, 11:43
ma scusa che problemi ti da? adesso non stai navigando?

roboro
10-01-2005, 11:54
si ma html è un sito a cui abbiako accesso, come per altri siti designati dall' azienda...per quelli che non sono nella lista, abbiamo accesso solo dalle 12 in poi...

strano pare impossibile ma è cosi...

Loading