php 匹配中文字符的正则表达式

匹配中文字符的正则表达式:[u4e00-u9fa5]

评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^x00-xff]

评注:可以用来计算字符串的长度(一个双字节字符长度计2,ascii字符计1)

PHP实例代码如下:

  1. $str = "singlepoint单点日志";
  2. if (preg_match("/^[x{4e00}-x{9fa5}]+$/u",$str)) {
  3. print("该字符串全部是中文");
  4. } else {
  5. print("该字符串不全部是中文");
  6. }
  7. $alias_len = mb_strlen($value['alias'], "utf-8");
  8. $temp_array = array();
  9. for($i = 0;$i<$alias_len; $i++)
  10. {
  11. $temp_array[$i] = mb_substr($value['alias'],$i,1,"utf-8");
  12. if(ord(substr($temp_array[$i],0,1))>'0xe0' && strlen($temp_array[$i])<3)
  13. $temp_array[$i] = '';
  14. }//开源代码phpfensi.com
  15. $value['alias'] = implode('',$temp_array);