在PHP后端的数据流的查抄或过滤时,有时我们会查抄一下某个字符串中是否包括有中文。并做出相应的逻辑处理惩罚。本日就说一说,PHP查抄字符串中是否含有中文字符
PHP查抄字符串中是否含有中文,要操作正则去判定,就用到了PHP预设函数preg_match(),关于preg_match()函数的先容你可以在本博客搜索相关文章,这里不再先容。
PHP判定是否含有中文字符PHP代码
<?php $str = '飞鸟慕鱼博客,网址'; 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 = '飞鸟慕鱼博客,网址'; 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 (日文)