多语言展示
当前在线:1922今日阅读:183今日分享:45

php判断字符是否为中文

编写php程序的时候,可能会遇到判断字符是否是中文的问题,这里给大家分享一下自己的经验,我测试了下,是好用的。
工具/原料
1

php

2

一台本地的php服务器,例如phpstudy

方法/步骤
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文件,测试完全通过:您输入的['.$str.']含有违法字符'; } else { echo '您输入的['.$str.']完全合法,通过!'; }}?>

输入字符(数字,字母,汉字,下划线):

注意事项

如果想判断一个字符串内是否有含有中文,请用下面的代码: if (preg_match('/[\x7f-\xff]/', $string)) { echo '有中文'; }else{ echo '没有中文'; }

推荐信息