Mar*_*jer 5 php utf-8 multibyte
我需要确定一个字符串是否只包含一个字母数字字符。显而易见的解决方案将是检查的长度和ASCII码(A-Z,a-z,0-9) -但问题是,我用UTF-8字符串的工作和重音封样á,?,?等等。
有没有一种简单的方法来检查 UTF-8 字符是否是字母数字(拉丁字母,可能是重音符号,或数字)?
使用正则表达式可以轻松完成此操作:
$count = preg_match_all('/\w/u', $string);
if ($count === 1) {
echo "One alphanumeric character found";
}
Run Code Online (Sandbox Code Playgroud)
\w将匹配任何“单词”字符,即字母、数字和下划线。修饰符u将字符串视为 unicode,因此它将包含重音字符。
如果匹配下划线是一个问题,您可以使用字符类[:alnum:]匹配来代替。