关于php正则匹配汉字的方法介绍

 更新时间:2013年04月25日 16:45:45   作者:  
本篇文章描述了,关于php正则匹配汉字的介绍。需要的朋友参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

php正则匹配汉字!

/^[\x{4e00}-\x{9fa5}]+$/u

以上这个正则表达式就是困扰了很多php程序员的匹配汉字的正则表达式

大家可能会觉得很简单,实际上不同编码,不同程序语言,都有些细微的出入,稍不注意就得不到正确的结果。

下面是utf-8编码的例子:
$str "汉字";
if (
preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)) {
print(
"该字符串全部是中文");
} else {
print(
"该字符串不全部是中文");

下面的例子包含gbk,gb2312的例子:

<?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 
"<font color=red>您输入的[".$str."]含有违法字符</font>";   
     }
     else 
     {
         echo 
"<font color=green>您输入的[".$str."]完全合法,通过!</font>";   
     }
}
?>
<form method="POST" action="?action=sub">
输入字符(数字,字母,汉字,下划线):
     <input type="text" name="dir" value="">
     <input type="submit" value="提交">
</form>

相关文章

最新评论


http://www.vxiaotou.com