在PHP后端的数据流的检查或过滤时,有时我们会检查一下某个字符串中是否包含有中文。并做出相应的逻辑处理。今天就说一说,PHP检查字符串中是否含有中文字符

PHP检查字符串中是否含有中文,要利用正则去判断,就用到了PHP预设函数preg_match(),关于preg_match()函数的介绍你可以在本博客搜索相关文章,这里不再介绍。

php 中文,php检查是否含有中文,php检查是否有中文,php是否全是中文,PHP正则判断字符串是否全是中文代码

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 (日文)