PHP判斷字串是純英文 純漢字或漢英混合

2021-08-27 06:44:18 字數 1341 閱讀 5378

php判斷字串是否為中文(或英文)的方法,除了正規表示式判斷和拆分字元判斷字元的值是否小於128

外還有一種比較特別的方法。

使用php中的mb_strlen和strlen函式判斷

方法比較簡單:分別使用以上兩個函式以當前編碼測出字元的返回值,然後比較返回值。

返回值相等的為純英文、純數字、英數混排;

返回值不等,且strlen返回值可被mb_strlen整除的為純漢字

返回值不等,且strlen返回值不可被mb_strlen整除的為英漢或數漢混排

看一下以下的例子:

<?php  

$strarray[1] = "hello";

$strarray[2] = "123456";

$strarray[3] = "123hello";

$strarray[4] = "你好";

$strarray[5] = "123你好";

$strarray[6] = "hello你好";

$strarray[7] = "123hello你好";

foreach ($strarray as $key->$value)

?>

執行後的結果是:

hello 5 5

123456 6 6

123hello 8 8

你好 2 4

123你好 5 7

hello你好 7 9

123hello你好 10 12

hp沒有直接函式來判斷乙個字串是否是純英文或純漢字以及漢英混合,只能自己寫函式。要想實現此功能就必需對字符集漢字編碼佔位進行了解,就目前國內比較常用的字符集當屬utf8與gbk了。

utf8每個漢字等於3個長度;

gbk每個漢字等於2個長度;

利用以上漢字與英文的差異,我們就可以利用mb_strlen函式與strlen函式分別計算出兩組長度數字,然後根據規律進行運算即可判斷出字串的型別了。

utf-8例項

<?php

/** * php判斷字串純漢字 or 純英文 or 漢英混合

*/echo '';

function utf8_str($str)

$str = '部落格';

echo '字串:'.$str.',是'.utf8_str($str).'';

?>

gbk方法

function gbk_str($str)

字串漢字英文數字判斷

在專案中用到過.在字串中有標點或其它字元,而只需要得到數字,漢字,英文這三種字元,所以需要過濾一下,如下.找出字串中的數字英文中文 param s return public static string specialfilters string s else if isnumber s.subst...

判斷輸入的字串是否為 純數字 還是 純字母

1.使用nsscanner來判斷 判斷是否為整形 bool ispureint nsstring string 判斷是否為浮點形 bool ispurefloat nsstring string if self ispureint str1 self ispurefloat str1 2.使用nsc...

css一串純數字或純英文無空格的字串強制換行

spanwhite space normal pre nowrap pre wrap pre line inherit white space 屬性設定如何處理元素內的空白 normal 預設。空白會被瀏覽器忽略。pre 空白會被瀏覽器保留。其行為方式類似 html 中的 pre 標籤。nowrap...