• User Attivo

    Filtrare contenuto stringa con preg_match. Come si fa?

    Ciao ragazzi 🙂

    Ho bisogno di una mano...
    Devo filtrare il contenuto di una stringa inserita in un form: la stringa può contenere lettere, numeri e spazi e può avere qualsiasi lunghezza.

    Come faccio a controllare questa stringa con preg_match?
    Se no, esiste un altro metodo?

    Grazie a tutti :ciauz:


  • User

    [PHP]
    if (preg_match("/^[A-z0-9 ]+$/",$valore_campo))
    echo "ok, parametri passati";
    else
    echo "no, parametri non passati";
    [/PHP]

    Ti consiglio questo ottimo tool per fare delle prove: gskinner.com/RegExr/


  • User Attivo

    Grazie per la risposta 🙂
    Saresti così gentile da fornirmi la spiegazione dei parametri? Come ci sei arrivato?
    Il mio problema è che non ho capito bene quali criteri si utilizzano per scrivere quella funzione in base alle proprie necessità...

    Grazie ancora :ciauz:


  • User

    Premesso che nel link che ti ho segnalato c'è la spiegazione di ogni "pattern".
    Cmq sia:

    • ^ = Dall'inizio della stringa
    • [A-z0-9 ] = Pattern che identifica ogni carattere dell'alfabeto sia maiuscolo che minuscolo, ogni numero e spazio.
      • = Il più indica di trovare il pattern segnalato tra le parentesi quadre 1 o più volte. Nel senso che se la parola è di un carattere alfanumerico o di spazio ha trovato corrispondenza 1 volta, se la parola è di 5 caratteri alfanumerici o di spazi ha trovato 5 corrispondenze; se non ci sono caratteri il controllo non passa perchè il "+" indica di trovare almeno una corrispondenza.
    • $ = Le regole sopra devono arrivare fino alla fine della stringa.

    :ciauz: