2012-07-25 50 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