您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“php怎么判斷字符串是否是中文”,內容詳細,步驟清晰,細節處理妥當,希望這篇“php怎么判斷字符串是否是中文”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
判斷方法:1、使用preg_match()函數配合正則來判斷是否全是中文 ,語法“!preg_match("/[^\x80-\xff]/i",$str)”;2、使用preg_match()函數配合正則來判斷是否包含中文 ,語法“preg_match("/[\x7f-\xff]/", $str)”或“preg_match('/[^\x00-\x80]/',$str)”。
php可以判斷字符串是否是中文,主要是利用正則匹配中文進行判定。
判斷可分兩種情況:
字符串的字符全是中文 ,如果
字符串包含中文
情況1:判斷全是中文
方法:preg_match()函數+正則表達式“/[^\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()函數+正則表達式“/[\x7f-\xff]/
”
<?php
header('content-type:text/html;charset=utf-8');
$str = "中文";
if (preg_match("/[\x7f-\xff]/", $str)) {
echo "含有中文";
}else{
echo "沒有中文";
}
?>
方法2:preg_match()函數+正則表達式“/[^\x00-\x80]/
”
<?php
header('content-type:text/html;charset=utf-8');
$str = "1234";
$pattern = '/[^\x00-\x80]/';
if(preg_match($pattern,$str)){
echo "含有中文";
}else{
echo "沒有中文";
}
?>
函數說明: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怎么判斷字符串是否是中文”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。