php中用正则验证中文字符串

在js中判断字符串是否是中文字符串很简单,但是到了php中,却不好处理,看到有人写的例子:

//中文ASCII码在0xa1~)xff之间

$str = "好好先生";

$patt_ch = chr(0xa1)."-".chr(0xff);

if(preg_match("/^[$patt_ch]+$/",$str)){

echo '全是中文';

}else{

echo '不全是中文';

}

但是打印的结果却一直是:"不全是中文" ,这种写法肯定有问题。

后来在网上找到另一种方法,经过验证是好使的,拿出来分享一下:

   //-----------------------------

   $str = "好好先生";

if(preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)){

echo '全是中文';

}else{

echo '不全是中文';

}

posted @ 2011-09-20 16:55  xyym  阅读(554)  评论(0)    收藏  举报