PHP 判断字符串是否为全英文,英汉混合,纯汉字方法

方法一:

function is_chinese($s){
        $allen = preg_match("/^[^\x80-\xff]+$/", $s);   //判断是否是英文
        $allcn = preg_match("/^[".chr(0xa1)."-".chr(0xff)."]+$/",$s);  //是否是中文
        if($allen){  
              return 'allen';  
        }else{  
              if($allcn){  
                   return 'allcn';  
              }else{  
                   return 'encn';  
              }  
        } 
   }

方法二:
利用Php的mb_strlen和strlen函数就可以轻松得知字符串的构成是全英文、英汉混合、还是纯汉字。简要说明如下(以上示例程序)
1、如果strlen返回的字符长度和mb_strlen以当前编码计算的长度一致,可以判断是纯英文字符串。
2、如果strlen返回的字符长度和mb_strlen以当前编码计算的长度不一致,且strlen返回值同mb_strlen的返回值求余后得0可以判断为是全汉字的字符串。
3、如果strlen返回的字符长度和mb_strlen以当前编码计算的长度不一致,且strlen返回值同mb_strlen的返回值求余后不为0,可以判断为是英汉混合的字符串。

function Check_stringType($str1) {
	        $strA = trim($str1);
	        $lenA = strlen($strA);
	        $lenB = mb_strlen($strA, "utf-8");
	        if ($lenA === $lenB) {
	            return "1"; //全英文
	        } else {
	            if ($lenA % $lenB == 0) {
	                return "2"; //全中文
	            } else {
	                return "3"; //中英混合
	            }
	       }
	 }

发布者

Jason Lin

人生就是一场旅行,请多留意沿途的风景!

发表评论

邮箱地址不会被公开。 必填项已用*标注