2012-07-25 11 views
11

Vorrei convalidare una stringa con un motivo che può contenere solo lettere (comprese le lettere con accenti). Ecco il codice che uso e restituisce sempre "nok". Non so cosa sto sbagliando, puoi aiutarmi? graziepreg_match con caratteri e accenti internazionali

$string = 'é'; 

if(preg_match('/^[\p{L}]+$/i', $string)) 
{ 
    echo 'ok'; 
} else{ 
    echo 'nok'; 
} 

risposta

21

Aggiungere l'UTF-8 modifier flag (u) per l'espressione:

/^\p{L}+$/ui 

C'è anche bisogno di avvolgere \p{L} all'interno di una classe di caratteri.

+0

Grazie! Questo mi stava facendo impazzire, cercando di ottenere un'espressione come '/ état (. *)/I' cercando di far corrispondere" États-unis "e" états-unis "... –

Problemi correlati