Link sponsorizzati

Le espressioni regolari più utilizzate

Articolo scritto da Max Bossi

In questo semplice articolo cercherò di riassumere le principali espressioni regolari cui si fa frequentemente ricorso nella validazione di un form.

L'elenco proposto, ovviamente, non ha alcuna pretesa di esaustività ma vuole essere un rapido referenziario cui fare ricorso nelle situazioni più comuni in cui è necessario effettuare la verifica dei dati inseriti in input dagli utenti.

(L'articolo continua più sotto...)

Le espressioni regolari che vedremo sono state scritte per lavorare con la funzione eregi() (qualora abbiate la necessità di fare validazioni case sensitive le stringe qui sotto dovranno essere lievemente modificate).

Per prima cosa vediamo un banalissimo esempio di validazione. Nel caso concreto andiamo a validare l'indirizzo email inserito dall'utente:

if (eregi("^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-\.]+$]", $_POST['email']))
{
  echo "Corretto";
}else{
  echo "Errore";
}
Vediamo ora, in rapida sequenza, le regular expression più frequentemente utilizzate:

Validare un indirizzo e-mail
La validazione non garantisce che l'indirizzo email sia vero e funzionante... tuttavia è un ottimo modo per evitare gli errori più grossolani.

^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-\.]+$]
Verificare l'username
Poniamo di voler verificare che l'username prescelto dai nostri utenti in fase di iscrizione sia conforme alle nostre disposizioni, che contenga, cioè, solo lettere e/o numeri ed abbia una lunghezza minima di 6 e massima di 12 caratteri:
^[a-z0-9]{6,12}$
Validare un nome a dominio
Nel esempio sottostante utilizzeremo un elenco di estensioni alternative (separate da "|"):
^[a-z0-9\-\.]+\.(it|com|org|net|eu|mobi)$
Validare una data
Nel caso della nostra espressione regolare la data dovrà essere inserita in un unico campo input nel formato DD/MM/AAAA:
^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}
L'espressione regolare, tuttavia, non è certamente il modo migliore per verificare l'esattezza di una data (il sistema migliore consiste nell'utilizzare la funzione nativa checkdate()).

Validare un indirizzo IP

^([0-9]{1,3}\.){3}[0-9]{1,3}$
Validare un colore esadecimale
^#?([a-f]|[0-9]){3}(([a-f]|[0-9]){3})?$
Validare un codice fiscale
Esistono sistemi complicati per verificare la correttezza di un codice fiscale; nel nostro caso l'utilizzo di un'espressione regolare ci garantirà che la stringa inserita sia, per sintassi, conforme alle regole.
^[a-z]{6}[0-9]{2}[a-z][0-9]{2}[a-z][0-9]{3}[a-z]$
Validare una partita IVA
La Partita IVA è un codice numerico composto da 11 cifre. La sua validazione è piuttosto semplice:
^[0-9]{11}$
Verificare che un file abbia una data estensione
E' piuttosto utile qualora gli utenti possano effettuare l'upload di file e si voglia impedire che vengano inviati file di formati non ammessi. Nel nostro esempio andremo a verificare che il file abbia estensione .zip:
^.+\.zip$
Verificare che il file sia un'immagine
Qualora si consenta agli utenti di effettuare l'upload di file d'immagine sarebbe opportuno verificare che questi lo siano effettivamente. Una prima verifica potrebbe essere quella di accertarsi che il file abbia una delle estensioni tipiche dei file grafici:
^.+\.(jpeg|jpg|png|gif|bmp)$

Nella stessa categoria...
E-Learning
Corso LinuxCorso Linux
Guida completa al sistema open-source. A partire da 39 €.
Corso MySQLCorso MySQL
Gestione del database open-source. A partire da 49 €.
Corso PHPCorso PHP
Corso completo per la creazione di siti Web dinamici. Sconto -25% sino al 15/02/2012.
Link sponsorizzati