入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

PHP正则判断某字符串中是否包含中文字符

创建时间:2018-03-14 投稿人: 浏览次数:149

PHP正则判断某字符串中是否包含中文字符

第一种方法:

if (preg_match("/[x7f-xff]/", $str)) {
    //echo "有中文";
}else{
    //echo "没有中文";
}

第二种方法:

  if(preg_match ("/[x{4e00}-x{9fa5}]/u", $keyword)){
        // 汉字
        $where["goods_name like"] =  "%".$keyword."%";
   }else{
        // 拼音
        $where["pinyin like"] =  "%".strtolower($keyword)."%";
   }

网上找了很久,多数是java和js的方法,可是直接用Java和js的方法,老是报错,后来发现

给“4e00”和“9fa5”两边分别用"{"和“}”包起来,就可以了

这里要注意的是:preg_match( ) 验证中文时要增加/u

知道了php中utf-8编码下用正则表达式匹配汉字的最终正确表达式——/^[x{4e00}-x{9fa5}]+$/u,知道问题在哪里了,其他的详细规则,自己变一下就可以了

再附上一段代码

$str = "php入坑指南";
if (preg_match("/^[x{4e00}-x{9fa5}]+$/u",$str)) {
     print("该字符串全部是中文");
} else {
     print("该字符串不全部是中文");
}


另附,双字节字符编码范围

1. GBK (GB2312/GB18030)
x00-xff GBK双字节编码范围
x20-x7f ASCII
xa1-xff 中文 gb2312
x80-xff 中文 gbk

2. UTF-8 (Unicode)
u4e00-u9fa5 (中文)
x3130-x318F (韩文
xAC00-xD7A3 (韩文)
u0800-u4e00 (日文)*/


声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。