可以判斷。判斷方法:1、使用preg_match()函數(shù)配合正則來判斷是否全是中文 ,語法“!preg_match("/[^x80-xff]/i",$str)”;2、使用preg_match()函數(shù)配合正則來判斷是否包含中文 ,語法“preg_match("/[x7f-xff]/", $str)”或“preg_match('/[^x00-x80]/',$str)”。
php入門到就業(yè)線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點擊使用
本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦
php可以判斷字符串是否是中文,主要是利用正則匹配中文進行判定。
判斷可分兩種情況:
-
字符串的字符全是中文 ,如果
-
字符串包含中文
情況1:判斷全是中文
方法:preg_match()函數(shù)+正則表達式“/[^x80-xff]/i
”
<?php header('content-type:text/html;charset=utf-8'); $str = "12hello13"; $str="'324是"; if(!preg_match("/[^x80-xff]/i",$str)){ echo "全是中文,是中文字符串"; }else{ echo "不是中文字符串"; } ?>
情況2:判斷含有中文
方法1:preg_match()函數(shù)+正則表達式“/[x7f-xff]/
”
<?php header('content-type:text/html;charset=utf-8'); $str = "中文"; if (preg_match("/[x7f-xff]/", $str)) { echo "含有中文"; }else{ echo "沒有中文"; } ?>
方法2:preg_match()函數(shù)+正則表達式“/[^x00-x80]/
”
<?php header('content-type:text/html;charset=utf-8'); $str = "1234"; $pattern = '/[^x00-x80]/'; if(preg_match($pattern,$str)){ echo "含有中文"; }else{ echo "沒有中文"; } ?>
函數(shù)說明:preg_match()
PHP 中的 preg_match() 函數(shù)可以根據(jù)正則表達式對字符串進行搜索匹配,函數(shù)的語法格式如下:
preg_match($pattern,$subject [, &$matches [, $flags = 0 [, $offset = 0 ]]])
參數(shù)說明如下:
-
$pattern:要搜索的模式,也就是編輯好的正則表達式;
-
$subject:要搜索的字符串;
-
$matches:可選參數(shù)(數(shù)組類型),如果提供了 $matches,它將被填充為搜索結(jié)果。 $matches[0] 包含完整模式匹配到的文本, $matches[1] 包含第一個捕獲子組匹配到的文本,以此類推;
-
$flags:可選參數(shù),$flags 可以被設置為 PREG_OFFSET_CAPTURE,如果傳遞了這個標記,對于每一個出現(xiàn)的匹配,返回時都會附加上字符串偏移量(相對于目標字符串的);
-
$offset:可選參數(shù),用于指定從目標字符串的哪個位置開始搜索(單位是字節(jié))。
preg_match() 函數(shù)可以返回 $pattern 的匹配次數(shù),它的值將是 0 次(不匹配)或 1 次,因為 preg_match() 在第一次匹配后將會停止搜索。
推薦學習:《PHP視頻教程》