Caputo's blog

Informatica, tecnologia, programmazione, fai da te, papercraft e papertoy

Le espressioni regolari più utili in PHP

maggio 9th, 2009 by Giovanni Caputo

Di seguito alcune espressioni regolari molto utili per chi programma in PHP. Naturalmente i controlli sono esclusivamente sintattici.

  1. Validare indirizzo email

    $email = "test@example.com";
    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 "Your email is ok.";
    } else {
        echo "Wrong email address format";
    }

    Una soluzione migliore è usare filter_var.

    if (filter_var('test+email@fexample.com', FILTER_VALIDATE_EMAIL)) {
        echo "Your email is ok.";
    } else {
        echo "Wrong email address format.";
    }
  2. Validare usernames

    Validare username composti da caratteri alfanumerici (a-z, A-Z, 0-9), underscores, con minimo 5  e massimo 20 caratteri.

    $username = "user_name12";
    if (preg_match('/^[a-z\d_]{5,20}$/i', $username)) {
        echo "Your username is ok.";
    } else {
        echo "Wrong username format.";
    }
  3. Validare numeri telefonici

    In questo caso numeri telefonici americani,  semplice da adattare per quelli di altre nazionalità.

    $phone = "(021)423-2323";
    if (preg_match('/\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/x', $phone)) {
        echo "Your phone number is ok.";
    } else {
        echo "Wrong phone number.";
    }
  4. Validare indirizzi IP

    $IP = "198.168.1.78";
    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 "Your IP address is ok.";
    } else {
        echo "Wrong IP address.";
    }
  5. Validare codici postali

    Anche in questo caso validati codici postali statunitensi.

    $zipcode = "12345-5434";
    if (preg_match("/^([0-9]{5})(-[0-9]{4})?$/i",$zipcode)) {
        echo "Your Zip code is ok.";
    } else {
        echo "Wrong Zip code.";
    }
  6. Validare numeri di carta di credito

    $cc = "378282246310005";
    if (preg_match('/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})$/', $cc)) {
        echo "Your credit card number is ok.";
    } else {
        echo "Wrong credit card number.";
    }
  7. Validare domini

    $url = "http://komunitasweb.com/";
    if (preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $url)) {
        echo "Your url is ok.";
    } else {
        echo "Wrong url.";
    }
  8. Estrarre dominio da una certa URL

    echo $host;
    
    echo $text;
    $url = "http://komunitasweb.com/index.html";
    preg_match('@^(?:http://)?([^/]+)@i', $url, $matches);
    $host = $matches[1];

Fonte: komunitasweb

Questo post è stato postato sabato, maggio 9th, 2009 at 10:57 nella categoria Programmazione, Siti Web, Tecnologia, tutorial. Tags:, , , , , .
Puoi seguire tutti i commenti di questo articolo attraverso RSS 2.0 feed. Puoi lasciare un commento, o trackback dal nostro sito.

1 response about “Le espressioni regolari più utili in PHP”

  1. alex said:

    utilissimo complimenti.
    Un suggerimento però lo vorrei dare ugualmente.
    Magari mettere una guida con istruzioni dettagliate sui “simboli” e lettere che utilizzi per le espressioni e per la funzione preg_match.
    Per il resto… ottimo lavoro

Lascia un commento

You must be loggati to post a comment.