background image

PHP 教程:php 正则匹配汉字的方法介绍

本文主要讲述了,php 正则匹配汉字的介绍。供大家参考下
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="提交">