php 正则匹配中文 utf8

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

var str = "php编程";
if (/^[\u4e00-\u9fa5]+$/.test(str)) {
    alert("该字符串全部是中文");
} else {
    alert("该字符串不全部是中文");
}

在php中来判断字符串是否为中文:

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


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

	$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."]完全合法,通过!";  
	}
}
?>
输入字符(数字,字母,汉字,下划线):

(转)

你可能感兴趣的:(php 正则匹配中文 utf8)