我需要找出一个字符串是否只包含一个字母数字字符。显而易见的解决方案是检查长度和ASCII代码(A-Z
,a-z
,0-9
) - 但问题是我使用的是UTF-8字符串和重音符号像á
,ř
,č
等字母
有没有一种简单的方法来检查UTF-8字符是否是字母数字(拉丁字母,可能是重音字母或数字)?
答案 0 :(得分:0)
$count = preg_match_all('/\w/u', $string);
if ($count === 1) {
echo "One alphanumeric character found";
}
\w
将匹配任何“单词”字符,即字母,数字和下划线。 u
修饰符将字符串视为unicode,因此它将包含重音字符。
如果匹配下划线有问题,您可以使用[:alnum:]
作为character class匹配。