c'e' solo un modo di fare le cose: farle bene
Quando si scrive un qualsiasi tipo di software capita spesso di imbattersi nelle espressioni regolari al fine di vigilare sull’input dell’utente o per estrapolarne dei dati.
Ho deciso di raccogliere le espressioni regolari per PHP più comuni, quelle che ho utilizzato di più nella mia “giovane” carriera da programmattore.
$email = "test@ideafactory.it";
if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
echo "OK";
} else {
echo "KO";
}
E’ importante ricordare che con le espressioni regolati si verifica solo la sintassi e non la semantica, quindi un indirizzo e-mail può essere ben scritto ma inesistente!.
$username = "user_name12";
if (preg_match('/^[a-z\d_]{5,20}$/i', $username)) {
echo "OK";
} else {
echo "KO";
}
La username, nel mio caso, deve essere composta da un minimo 5 ad un massimo di 20 caratteri e può contenere solo lettere, numeri e underscore “_”.
$IP = "198.168.1.7";
if (preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/',$IP)) {
echo "OK";
} else {
echo "KO";
}
$url = "http://www.ideafactory.it/";
if (preg_match('/^(http|https):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $url)) {
echo "OK";
} else {
echo "KO";
}
Un’ottima guida sulle espressioni regolari in PHP è quella fornita da HTML.IT presente qui.
RT @lddio: La mafia teme più la scuola della giustizia. L'istruzione toglie erba sotto i piedi della cultura mafiosa. (A. Caponnetto, 19 ... [gianlucagentile]
RT @gzaffagnini: @riotta Dio accolga coloro che lo #Stato non riesce a proteggere [gianlucagentile]
RT @donati_giacomo: Solo delle Merde possono piazzare una bomba davanti una scuola! #brindisi [gianlucagentile]
Powered by Lifestream.
| L | M | M | G | V | S | D |
|---|---|---|---|---|---|---|
| « nov | ||||||
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | |||
Leave a reply