在PHP后端的数据流的检查或过滤时,有时我们会检查一下某个字符串中是否包含有中文。并做出相应的逻辑处理。今天就说一说,PHP检查字符串中是否含有中文字符
PHP检查字符串中是否含有中文,要利用正则去判断,就用到了PHP预设函数preg_match(),关于preg_match()函数的介绍你可以在本博客搜索相关文章,这里不再介绍。
PHP判断是否含有中文字符
PHP代码
<?php $str = ',网址www.feiniaomy.com'; if(preg_match('/[\x{4e00}-\x{9fa5}]/u', $str)>0){ echo '含有中文字符'; }else{ echo '未找到中文字符'; }
输出结果:含有中文字符。
注:PHP正则表达式中不支持下列 Perl 转义序列:L, l, N, P, p, U, u, or X 在 UTF-8 模式下,允许用“x{...}”,花括号中的内容是表示十六进制数字的字符串。
例如:"/[\x{4e00}-\x{9fa5}]/u" 记得在后面加上 u 修饰符。
PHP判断字符串是否全是口中文
例1:
<?php $str = ',网址www.feiniaomy.com'; if(preg_match('/^[\x{4e00}-\x{9fa5}]+$/u', $str)>0){ echo '全是中文'; }else{ echo '不全是中文'; }
//输出结果:不全是中文
例2:
<?php $str = ''; if(preg_match('/^[\x{4e00}-\x{9fa5}]+$/u', $str)>0){ echo '全是中文'; }else{ echo '不全是中文'; }
//输出结果:全是中文
其它关于PHP正则验证是否为中文的方法
<?php $str = '.feiniaomy.com'; if(preg_match("/^[A-Za-z0-9]+$/", $str) == false){ echo '含有中文'; }else{ echo '没有中文'; }
//输出结果:含有中文
扩展:
php中双字节字符编码范围
1. GBK (GB2312/GB18030)
x00-xff GBK双字节编码范围 x20-x7f ASCII xa1-xff 中文 gb2312 x80-xff 中文 gbk
2. UTF-8 (Unicode)
u4e00-u9fa5 (中文) x3130-x318F (韩文 xAC00-xD7A3 (韩文) u0800-u4e00 (日文)
本文PHP检查字符串中是否含有中文的方法到此结束。忌妒别人,不会给自我增加任何的好处。忌妒别人,也不可能减少别人的成就。小编再次感谢大家对我们的支持!