首頁  >  文章  >  後端開發  >  php可以判斷字串是否是中文嗎

php可以判斷字串是否是中文嗎

青灯夜游
青灯夜游原創
2022-12-15 16:35:216420瀏覽

可以判斷。判斷方法:1、使用preg_match()函數來配合正規程式來判斷是否全是中文,語法「!preg_match("/[^\x80-\xff]/i",$str)」;2、使用preg_match()函數配合正規來判斷是否包含中文,語法「preg_match("/[\x7f-\xff]/", $str)」或「preg_match('/[^\x00-\x80]/',$str)」。

php可以判斷字串是否是中文嗎

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

php可以判斷字串是否是中文,主要是利用正規匹配中文進行判定。

判斷可分兩種情況:

  • #字串中全是中文字元

  • 字串包含中文 

情況1:判斷全是中文 

方法:preg_match()函數正規表示式「/[^\x80-\xff]/i

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$str = "12hello13";
$str="&#39;324是"; 
if(!preg_match("/[^\x80-\xff]/i",$str)){ 
echo "全是中文,是中文字符串"; 
}else{ 
echo "不是中文字符串"; 
} 
?>

php可以判斷字串是否是中文嗎

#情況2:判斷含有中文 

#方法1:preg_match()函數正規表示式「/[\x7f-\xff]/

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$str = "中文"; 
if (preg_match("/[\x7f-\xff]/", $str)) { 
echo "含有中文"; 
}else{ 
echo "没有中文"; 
} 
?>

php可以判斷字串是否是中文嗎

##方法2:preg_match ()函數正規表示式「/[^\x00-\x80]/

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);   
$str = "1234"; 
$pattern = &#39;/[^\x00-\x80]/&#39;; 
if(preg_match($pattern,$str)){ 
echo "含有中文"; 
}else{ 
echo "没有中文"; 
}
?>

php可以判斷字串是否是中文嗎

函數說明:preg_match()

PHP 中的preg_match() 函數可以根據正規表示式對字串進行搜尋匹配,函數的語法格式如下:

preg_match($pattern,$subject [, &$matches [, $flags = 0 [, $offset = 0 ]]])

參數說明如下:

  • $pattern:要搜尋的模式,也就是編輯好的正規表示式;

  • $subject:要搜尋的字串;

  • $matches:可選參數(陣列類型),如果提供了$matches,它將被填入搜尋結果。 $matches[0] 包含完整模式匹配到的文本, $matches[1] 包含第一個捕獲子組匹配到的文本,以此類推;

  • $flags:可選參數,$flags 可以被設定為PREG_OFFSET_CAPTURE,如果傳遞了這個標記,對於每一個出現的匹配,返回時都會附加上字串偏移量(相對於目標字串的);

  • #$offset:可選參數,用於指定從目標字串的哪個位置開始搜尋(單位是位元組)。

preg_match() 函數可以傳回$pattern 的符合次數,它的值將是0 次(不符)或1 次,因為preg_match() 在第一次符合後將會停止搜尋。

推薦學習:《PHP影片教學

以上是php可以判斷字串是否是中文嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn