Eu preciso descobrir se uma string contém exatamente um caractere alfanumérico. A solução óbvia seria verificar o comprimento e o código ASCII (A-Z
, a-z
, 0-9
) - mas o problema é que eu estou trabalhando com cordas utf-8 e letras acentuadas como á
, ř
, č
etc.
Existe uma maneira simples de verificar se um caractere utf-8 é alfanumérico (letra do alfabeto latino, possivelmente acentuado ou um número)?
Respostas:
0 para resposta № 1Isso é feito facilmente com um expressão regular:
$count = preg_match_all("/w/u", $string);
if ($count === 1) {
echo "One alphanumeric character found";
}
w
irá corresponder a qualquer caractere "palavra", que são letras, números e sublinhados. o u
modificador trata a string como unicode, por isso incluirá caracteres acentuados.
Se os sublinhados correspondentes forem um problema que você poderia usar [:alnum:]
como um classe de personagem jogo em vez disso.