/ / PHP - проверете дали низът е многобуквен буквено-цифров знак - php, utf-8, multibyte

PHP - проверете дали низът е многобуквен буквено-цифров знак - php, utf-8, multibyte

Трябва да разбера дали даден низ съдържа точно един буквено-цифров знак. Очевидното решение е да се провери дължината и кода ASCII (A-Z, a-z, 0-9) - но проблемът е, че аз работя с utf-8 струни и акцентирани писма като á, ř, č и т.н.

Има ли прост начин да се провери дали един utf-8 символ е буквено-цифров (буква латинска азбука, евентуално с акцент или число)?

Отговори:

0 за отговор № 1

Това лесно се прави с a регулярен израз:

$count = preg_match_all("/w/u", $string);
if ($count === 1) {
echo "One alphanumeric character found";
}

w ще съответства на всеки знак "дума", които са букви, цифри и долни черти. Най- u модификаторът третира низа като unicode, така че той ще включва ударени знаци.

Ако съвпадение на долните черти е проблем, който можете да използвате [:alnum:] като характер класа вместо това.