千家信息网

PHP如何使用正则判断中文UTF-8或GBK

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍了PHP如何使用正则判断中文UTF-8或GBK,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。UTF-8匹配: 在jav
千家信息网最后更新 2026年11月01日PHP如何使用正则判断中文UTF-8或GBK

这篇文章主要介绍了PHP如何使用正则判断中文UTF-8或GBK,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

UTF-8匹配: 在javascript中,要判断字符串是中文是很简单的。比如:

代码如下:


var str = "php编程";
if (/^[\u4e00-\u9fa5]+$/.test(str)) {
alert("该字符串全部是中文");
}else{
alert("该字符串不全部是中文");
}
//php中,是用\x表示十六进制数据的。于是,变换成如下的代码:
$str = "php编程";
if (preg_match("/^[\x4e00-\x9fa5]+$/",$str)) {
print("该字符串全部是中文");
} else {
print("该字符串不全部是中文");
}


貌似不报错了,判断的结果也正确,不过把$str换成"编程"两字,结果却还是显示"该字符串不全部是中文",看来这样的判断还是不够准确。重要:查阅了<精通正则表达式>发现,对于[\x4e00-\x9fa5]这块东西,自己做一个强化的解释 php的正则中, [\x4e00-\x9fa5],其实就是 字符和字符组的概念, \x{hex},表达一个16进制数, 需要注意的是hex 可以是1-2位的,也可以是4位的,但是如果是4位的必须加上大括号, 同时,如果是大于x{FF}的hex,必须和u 修饰符连用,不然会非法出错
网上只能找到匹配全角字符的正则: ^[\x80-\xff]*^/ ,这里可以不加大括号
[\u4e00-\u9fa5]可以匹配中文,但是PHP又不支持
不过,既然\x表示的十六进制数据,为什么和js里边提供的范围\x4e00-\x9fa5不一样呢?于是我就换成了下边的代码,发现真的准确了:

代码如下:


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


知道了php中utf-8编码下用正则表达式匹配汉字的最终正确表达式--/^[\x{4e00}-\x{9fa5}]+$/u,

参考以上文章写了如下一段测试代码(复制以下代码保存成.php文件)

代码如下:


$action = trim($_GET['action']);
if($action == "sub")
{
$str = $_POST['dir'];
//if(!preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str)) //GB2312汉字字母数字下划线正则表达式
if(!preg_match("/^[\x{4e00}-\x{9fa5}A-Za-z0-9_]+$/u",$str)) //UTF-8汉字字母数字下划线正则表达式
{
echo "您输入的[".$str."]含有违法字符";
}
else
{
echo "您输入的[".$str."]完全合法,通过!";
}
}
?>

代码如下:



输入字符(数字,字母,汉字,下划线):




GBK: preg_match("/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_]+$/",$str); //GB2312汉字字母数字下划线正则表达式。

感谢你能够认真阅读完这篇文章,希望小编分享的"PHP如何使用正则判断中文UTF-8或GBK"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

字符 中文 正则 代码 字符串 表达式 汉字 下划线 字母 数字 篇文章 编程 UTF-8 输入 十六进制 同时 括号 数据 结果 还是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 蓝思科技飞鸽互联网 科技和互联网公司 互联网下的科技发展 科技服务与互联网 世界互联网领先科技成果 艾特科技互联网 易通互联网络科技有限公司 沃里互联网科技 广州善班互联网科技 恒生科技互联网指数分析 互联网为啥属于高科技 湖北码尼互联网科技有限公司电话 互联网科技和法律行业 四川互联网展示科技馆设计 工业互联网科技创业 山东大美朱楼互联网科技有限公司 互联网科技机房 互联网科技博主张洲 互联网科技创业有什么好项目 科技发展第三阶段互联网时代 互联网科技工作委员会毛军 互联网科技有限公司图片 互联网科技作文 睿民互联网科技 互联网科技大奖都有哪些公司 佛山市翊博互联网络科技有限公司 元气玛特互联网科技公司是外包吗 卡尔迅互联网科技有限公司 西安左小互联网科技有限公司 互联网科技快速发展优美句子
0