Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

preg_match with international characters and accents

I would like to validate a string with a pattern that can only contain letters (including letters with accents). Here is the code I use and it always returns "nok". I don't know what I am doing wrong, can you help? thanks

$string = 'é';

if(preg_match('/^[\p{L}]+$/i', $string)){

    echo 'ok';

} else{

    echo 'nok';
}
like image 389
Vincent Avatar asked Jul 25 '12 11:07

Vincent


1 Answers

Add the UTF-8 modifier flag (u) to your expression:

/^\p{L}+$/ui

There is also no need to wrap \p{L} inside of a character class.

like image 93
Tim Cooper Avatar answered Sep 28 '22 21:09

Tim Cooper