php和JS正则表达式匹配中文

一、判断中文和编码有关 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: 韩文是大于[\u9fa5]的字符 

二、JS判断中文

var str = "php编程";
if (/^[\u4e00-\u9fa5]+$/.test(str)) {
alert("该字符串全部是中文");
} else {
alert("该字符串不全部是中文");
}

三、PHP中判断中文

$str = "php编程";
if (preg_match("/^[\x{4e00}-\x{9fa5}]+$/u",$str)) {
print("该字符串全部是中文");
} else {
print("该字符串不全部是中文");
}

注意:

在php中,是用\x表示十六进制数据

u (PCRE_UTF8)
此修正符启用了一个 PCRE 中与 Perl 不兼容的额外功能。模式字符串被当成 UTF-8。

 

posted @ 2016-06-22 13:46  半瓶子水  阅读(1869)  评论(0编辑  收藏  举报