Php - regular expression to check if the string has chinese chars

前端 未结 4 1576
深忆病人
深忆病人 2020-11-28 04:14

I have the string $str and I want to check if it`s content has Chinese chars or not (true/false)

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


        
相关标签:
4条回答
  • 2020-11-28 04:25
    preg_match("/^\p{Han}{2,10}+$/u", $str);
    

    Use /^\p{Han}{2,10}+$/u regex which allows Chinese character only.

    1. It allows chinese character only &
    2. It allows Minimum 2 character &
    3. It allows maximum 10 character

    You can change minimum and maximum character by changing {2,10} as per your need.

    \p & /u are very important to add please don't avoid to add it.

    0 讨论(0)
  • 2020-11-28 04:32

    You could use a unicode character class http://www.regular-expressions.info/unicode.html

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

    This just checks for the presence of at least one chinese character. You might want to expand on this if you want to match the complete string.

    0 讨论(0)
  • 2020-11-28 04:43

    This link to a previous question on identifying simplified or traditional Chinese might give you some ideas... you don't actually specify which you mean, and I don't know Chinese well enough to recognise the difference

    0 讨论(0)
  • 2020-11-28 04:49

    @mario answer is right!

    For Chinese chars use this regex: /[\x{4e00}-\x{9fa5}]+/u

    And Don't forget the u modifier!!!

    About u modifier reference

    TKS to mario

    0 讨论(0)
提交回复
热议问题