常用知识 - 中文验证 ¶
作者:KK
发表日期:2016.10.21
主要是靠/[\x{4e00}-\x{9fa5}]+/u
这个表达式进行校验,而且只能对UTF-8的字符生效,测试代码:
$str = 'ab中文c';
if(preg_match('/[\x{4e00}-\x{9fa5}]+/u', $str)){
echo '有中文';
}
$str = '中文';
if(preg_match('/^[\x{4e00}-\x{9fa5}]+$/u', $str)){
echo '全都是中文';
}
$str = '陈小花陈大花花';
if(!preg_match('/^[\x{4e00}-\x{9fa5}]{2,6}$/u', $str)){
echo '请输入2到6个字的姓名';
}
引用解释:
php的正则中
[\x4e00-\x9fa5]
其实就是字符和字符组的概念(这个数值区间表示了UTF8字符的十六进制值的区间),\x{hex}
表达一个16进制数 需要注意的是hex可以是1-2位的,也可以是4位的,但是如果是4位的必须加上大括号 同时,如果是大于x{FF}
的hex,必须和u
修饰符连用,不然会非法出错