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

php中utf-8编码和GB2312编码下用正则表达式匹配汉字

2012-09-01 15:12 776 查看


php中utf-8编码和GB2312编码下用正则表达式匹配汉字

2009-09-30 12:44:43| 分类: php|字号 订阅

在javascript中,要判断字符串是中文是很简单的。比如:
var str = "php编程";

if (/^[\u4e00-\u9fa5]+$/.test(str)) {

alert("该字符串全部是中文");

} else {

alert("该字符串不全部是中文");

}

/******************************************测试通过*******************************************************/

//在php中过滤utf8编码的中文半字

/*过滤呢称中的半个中文字符*/

$alias_len = mb_strlen($value['alias'], "UTF-8");

$temp_array = array();

for($i = 0;$i<$alias_len; $i++)

{

$temp_array[$i] = mb_substr($value['alias'],$i,1,"UTF-8");

if(ord(substr($temp_array[$i],0,1))>'0xE0' && strlen($temp_array[$i])<3)

$temp_array[$i] = '';

}

$value['alias'] = implode('',$temp_array);

/********************************************************************************************************************/

一下部分未经测试

<?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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: