Php检查字符串是否有中文字符

时间:2011-02-07 15:52:03

标签: php string cjk

我有字符串$str,我想检查它的内容是否有中文字符(真/假)

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

谢谢! 阿德里安

4 个答案:

答案 0 :(得分:53)

您可以使用unicode字符类http://www.regular-expressions.info/unicode.html

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

这只是检查是否存在至少一个中文字符。如果要匹配完整的字符串,可能需要对此进行扩展。

答案 1 :(得分:2)

@mario回答是对的!

对于中国字符,请使用此正则表达式:/[\x{4e00}-\x{9fa5}]+/u

并且不要忘记u修饰符!!!

关于u修饰符reference

TKS to mario

答案 2 :(得分:1)

前一个关于识别简体中文或繁体中文的问题link可能会给你一些想法......你实际上没有说明你的意思,而且我不太清楚中国人是否认识到差异

答案 3 :(得分:1)

preg_match("/^\p{Han}{2,10}+$/u", $str);

使用仅允许使用中文字符的 / ^ \ p {Han} {2,10} + $ / u 正则表达式。

  1. 仅允许使用中文字符&
  2. 允许最少2个字符&
  3. 允许最多10个字符
  4. 您可以根据需要更改{2,10}来更改最小和最大字符。

    \ p & / u 非常重要,请不要添加。