php正则表达式判断中文字符串 php输入汉字的正则

2015年07月08日 23:40 by:唠吧小站

首先中文字符在不同编码下范围不同:

判断中文和编码有关 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]的字符

php正则表达式判断字符串中文的方法

判断字符串全部是汉字的代码实例:  

  1. <?
  2. $str = "唠吧小站";
  3. echo $str;
  4. echo "<hr>";
  5. //if (preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/", $str)) { //只能在GB2312情况下使用
  6. if (preg_match("/^[x7f-xff]+$/", $str)) { //兼容gb2312,utf-8 ,  //那么gbk编码用 preg_match('/[x80-xff]./', $s);        
     
  7. echo "全都是汉字";
  8. } else {
  9. echo "哎呀非汉字不能行";
  10. }
  11. ?>

判断字符串内是否有含有中文的代码:

  1. if (preg_match("/[x7f-xff]/", $string)) {
  2. echo "字符串中有中文";
  3. }else{
  4. echo "没有中文";
  5. }

javascript 判断字符串的正则

  1. var str = "www.lao8.org 唠吧小站";
  2. if (/^[u4e00-u9fa5]+$/.test(str)) { //UTF-8 编码下
  3. alert("该字符串全部是中文");
  4. }
  5. else{
  6. alert("该字符串不全部是中文");
  7. }