php判断字符是否为中文

时间:2024-10-13 21:48:27

1、首先,需要知道一下常见的编码范围1. GBK (GB2312/GB18030)\x00-\xff GBK双字节编码范围\x20-\x7f ASCII\xa1-\xff 中文\x80-\xff 中文 2. UTF-8 (Unicode)\u4e00-\u9fa5 (中文)\x3130-\x318F (韩文\xAC00-\xD7A3 (韩文)\u0800-\u4e00 (日文)正则表达式的例子:preg_replace(”/([\x80-\xff])/”,”",$str);preg_replace(”/([u4e00-u9fa5])/”,”",$str

2、在javascript中,要判断字符串是中文是很简单的。比如:var str = 争犸禀淫"php编程";if (/^[\u4e00-\u9fa5]+$/.test(str)) {alert("该字符串全部是中文");}else{alert("该字符串不全部是中文");}php中,是用\x表示十六进制数据的。于是,变换成如下的代码:$str = "php编程";if (preg_match("/^[\x4e00-\x9fa5]+$/",$str)) {print("该字符串全部是中文");} else {print("该字符串不全部是中文");}不报错了,但是有些汉字测试的时候,结果却还是显示“该字符串不全部是中文”,看来这样的判断还是不够准确。

3、php中utf-8编码下用正则表达式匹配汉字的最终正确表达式——/^[\x{4e00}-\x{9fa5}]+$/u

4、复制以下代码保存成.php文件,测试完全通过:<?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>

© 手抄报圈