У меня есть строка $str
и я хочу проверить, имеет ли ее содержимое китайские символы или нет (true / false)
$str = "赕就可消垻,只有当所有方块都被消垻时才可以过关";
не могли бы вы мне помочь?
Благодаря! Адриан
Вы можете использовать класс символов юникода http://www.regular-expressions.info/unicode.html
preg_match("/\p{Han}+/u", $utf8_str);
Это просто проверяет наличие хотя бы одного китайского персонажа. Вы можете захотеть расширить его, если хотите совместить полную строку.
Ответ @mario
прав!
Для китайских символов используйте это регулярное выражение: /[\x{4e00}-\x{9fa5}]+/u
И не забывайте модификатор u
!!!
Ссылка на ссылку на модификатор u
TKS to mario
Эта ссылка на предыдущий вопрос об идентификации упрощенного или традиционного китайского языка может дать вам некоторые идеи … вы на самом деле не указываете, что вы имеете в виду, и я не знаю китайцев достаточно хорошо, чтобы распознать разницу
Регулярное выражение для разрешения только китайского иероглифа с максимум 10 и минимум 2-мя иероглифами
/^\p{Han}{2,10}+$/u
Используйте это регулярное выражение, которое позволяет использовать только китайский символ.
Вы можете изменить минимальный и максимальный характер, изменив {2,10} в соответствии с вашими потребностями.
\ p & / u очень важны для добавления, пожалуйста, не избегайте добавлять его.