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.

E-Mail

$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

$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 “_”.

Indirizzo IP

$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

$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.

Bookmark and Share