2012-07-25 36 views
11

我想驗證只能包含字母(包括帶有重音符號的字母)的字符串。這是我使用的代碼,它總是返回「nok」。 我不知道我在做什麼錯,你能幫忙嗎?感謝帶有國際字符和口音的preg_match

$string = 'é'; 

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

回答

21

的UTF-8 modifier flagü)添加到您的表達:

/^\p{L}+$/ui 

也沒有必要換\p{L}字符類的內部。

+0

謝謝!這讓我發瘋,試圖讓一個像'/état(。*)/ i'這樣的表達嘗試匹配「États-unis」和「états-unis」...... – 2015-01-27 15:07:36