Php проверить, если строка содержит китайские символы - PullRequest
25 голосов
/ 07 февраля 2011

У меня есть строка $str, и я хочу проверить, есть ли в ее содержимом китайские символы или нет (true / false)

$str = "赕就可消垻,只有当所有方块都被消垻时才可以过关";

Не могли бы вы мне помочь?

Спасибо! Адриан

Ответы [ 4 ]

54 голосов
/ 07 февраля 2011

Вы можете использовать класс символов Unicode http://www.regular -expressions.info / unicode.html

preg_match("/\p{Han}+/u", $utf8_str);

Это просто проверяет наличие хотя бы одного китайского символа. Вы можете расширить это, если хотите соответствовать полной строке.

2 голосов
/ 30 августа 2014

@mario ответ правильный!

Для китайских символов используйте это регулярное выражение: /[\x{4e00}-\x{9fa5}]+/u

И не забудьте модификатор u !!!

О u модификатор ссылка

TKS на Марио

1 голос
/ 22 ноября 2017
preg_match("/^\p{Han}{2,10}+$/u", $str);

Использование / ^ \ p {Han} {2,10} + $ / u регулярное выражение, которое допускает только китайский символ.

  1. Это позволяет только китайский символ&
  2. Это позволяет минимум 2 символа &
  3. Это позволяет максимум 10 символов

Вы можете изменить минимальный и максимальный символ, изменив {2,10} согласно вашемунужно.

\ p & / u очень важно добавить, пожалуйста, не избегайте добавлять его.

1 голос
/ 07 февраля 2011

Эта ссылка на предыдущий вопрос об идентификации упрощенного или традиционного китайского языка может дать вам некоторые идеи ... вы на самом деле не указываете, что вы имеете в виду, и я не знаю достаточно хорошо, чтобы понятьразница

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...