Ciao a tutti,
qualcuno avrebbe sotto mano una espressione regolare "seria" per validare URL ed indirizzi e-mail?
Tnx a lot
![]()
Ciao a tutti,
qualcuno avrebbe sotto mano una espressione regolare "seria" per validare URL ed indirizzi e-mail?
Tnx a lot
![]()
GNU/Linux is the answer...now, what was your question?
validare e-mail io mi sono fatto
$expression = "^[._A-Za-z0-9-]+@[_A-Za-z0-9-]+(\.[A-Za-z]+)(\.[A-Za-z]+)*$";
però è fatta da me quindi non saprei dirti se ha problemi, a me funzia bene però non ho fatto test avanzati.
per le url non capisco che validazione vuoi.
ciao, vuoi che comprenda il www, l'http:// o altro.
ciao
Un pò lunghetta eh?Originariamente inviato da massimo80
validare e-mail io mi sono fatto
$expression = "^[._A-Za-z0-9-]+@[_A-Za-z0-9-]+(\.[A-Za-z]+)(\.[A-Za-z]+)*$";
però è fatta da me quindi non saprei dirti se ha problemi, a me funzia bene però non ho fatto test avanzati.
per le url non capisco che validazione vuoi.
ciao, vuoi che comprenda il www, l'http:// o altro.
ciao![]()
Quella se non mi sbaglio è una posix, usa un PERL compatible, sono più veloci:
$url = 'cio http://www.ciao.it coi';
preg_match_all("|((http:\/\/)|(www))\.(.*)\.(.*)|iu", $url, $array);
Non l'ho testata ma deve andare. Se $array è vuoto, vuol dire che non ha trovato url, se ne trova, diventa un array contenente tutti gli url che ha trovato.
![]()
Grazie Pater, non l'ho provata, ma a vederla penso che non riesca a validare http://qualcosa.dominio.tldOriginariamente inviato da PaTeR
Un pò lunghetta eh?![]()
Quella se non mi sbaglio è una posix, usa un PERL compatible, sono più veloci:
$url = 'cio http://www.ciao.it coi';
preg_match_all("|((http:\/\/)|(www))\.(.*)\.(.*)|iu", $url, $array);
Non l'ho testata ma deve andare. Se $array è vuoto, vuol dire che non ha trovato url, se ne trova, diventa un array contenente tutti gli url che ha trovato.
![]()
GNU/Linux is the answer...now, what was your question?
Conosci le espressioni regolari??Originariamente inviato da genset
Grazie Pater, non l'ho provata, ma a vederla penso che non riesca a validare http://qualcosa.dominio.tld![]()
Quella ti cerca le frasi che iniziano con http:// o www, che abbiano un qualcosa dopo quello di prima, e poi cerca se c'è un suffisso.
PS: Precisazione, usa questa:
$url = 'cio http://www.ciao.it coi';
preg_match_all("|((http:\/\/)|(www\.))(.*)\.(.*)|iu", $url, $array);
Avevoi sbagliato un . fuori posto.
Non le conosco benissimo, ma qualcosa ci capisco!Originariamente inviato da PaTeR
Conosci le espressioni regolari??![]()
Quella ti cerca le frasi che iniziano con http:// o www, che abbiano un qualcosa dopo quello di prima, e poi cerca se c'è un suffisso.
PS: Precisazione, usa questa:
$url = 'cio http://www.ciao.it coi';
preg_match_all("|((http:\/\/)|(www\.))(.*)\.(.*)|iu", $url, $array);
Avevoi sbagliato un . fuori posto.
La tua quindi non mi valida un sito che non inizia per www o per http://, cioè: qualcosa.dominio.tld.
Mi conviene allora fare un controllo prima, se non c'è "http://" all'inizio della stringa glielo aggiungo, poi passo la stringa modificata in pasto alla tua espressione regolare. Così dovrei essere sicuro che me la valida sempre correttamente.
GNU/Linux is the answer...now, what was your question?
è stata fatta una discussione lunghissima tempo fa per trovare un espressione regolare che riuscisse a validare un'url senza ambiguità e non mi ricordo se alla fine ne era stata trovata una all'altezza.
Validare un'url è cosa moooolto complicata. Io avevo tratto da quella discussione questa funzione:
function IsUrl( $valore ){
$er = "/^((http|https|ftp):\/\/|[w]{3}[0-9]{0,1}\.)([a-zA-Z0-9]([a-zA-Z0-9\-_]+\.|[a-zA-Z0-9\-_]+|)+[a-zA-Z0-9]\.[a-zA-Z]{2,6})(:[0-9]{1,5}|)(\/.{0,1024}|)$/i";
return (preg_match($er, $valore));
}
come vedete voi stessi la regex non è proprio delle più semplici![]()
byezzz
Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone
Ciao,Originariamente inviato da 13manuel84
è stata fatta una discussione lunghissima tempo fa per trovare un espressione regolare che riuscisse a validare un'url senza ambiguità e non mi ricordo se alla fine ne era stata trovata una all'altezza.
si mi ricordo quella discussione, era più di un anno fa però! E non sono riuscito a trovarla con la ricerca, speravo appunto che qualcuno si fosse salvato l'espressione.
Grazie mille
![]()
GNU/Linux is the answer...now, what was your question?
Comunque anche questa non mi valida la stringa se non inizia con il protocollo o con www, ad esempioOriginariamente inviato da 13manuel84
function IsUrl( $valore ){
$er = "/^((http|https|ftp):\/\/|[w]{3}[0-9]{0,1}\.)([a-zA-Z0-9]([a-zA-Z0-9\-_]+\.|[a-zA-Z0-9\-_]+|)+[a-zA-Z0-9]\.[a-zA-Z]{2,6})(:[0-9]{1,5}|)(\/.{0,1024}|)$/i";
return (preg_match($er, $valore));
}
$valore = "qualcosa.dominio.tld";
![]()
GNU/Linux is the answer...now, what was your question?
un'url completa inizia sempre con il protocollo, se vuoi validare parte di un'url quella è un'altra cosa...
Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone