PHP正则表达式验证是否含有中文
今天在对产品名称转化为url的时候发现中文通过我的正则转化后会出现乱码,于是又要用到一个正则表达式来验证产品名称中是否有中文。if (preg_match("/[/x7f-/xff]/", $string)) {
echo "true";
}else{
echo "false";
}
判断是否全部是中文
//if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) { //只能在GB2312情况下使用
if (preg_match("/^[/x7f-/xff]+$/", $str)) { //兼容gb2312,utf-8
echo "true";
} else {
echo "false";
}
判断中文和编码有关 gbk是双字节,utf8是三字节,可以根据中文的范围来判断
编码范围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 (日文)
ps: 韩文是大于的字符
正则例子:
preg_replace(”/()/”,””,$str);
preg_replace(”/()/”,””,$str);
页:
[1]