您的位置:首页 > 编程语言 > PHP开发

php正则匹配汉字!

2013-03-20 15:15 225 查看
转载自 : http://blog.csdn.net/lihaiboas1/article/details/7030735?reload
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://blog.csdn.net/lihaiboas1/article/details/7030735?reload
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: