首頁 >後端開發 >PHP問題 >php怎麼偵測字串是否只有字母

php怎麼偵測字串是否只有字母

青灯夜游
青灯夜游原創
2022-04-22 19:48:364257瀏覽

php中,可用preg_match()函數來配合正規表示式「/^[a-zA-Z\s] $/」來偵測字串是否只有字母,語法「preg_match("/^[a -zA-Z\s] $/",字串)」;如果傳回值為1則只有字母,傳回0則包含其他字元。

php怎麼偵測字串是否只有字母

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

php偵測字串是否只有字母,換個說法就是:判斷字串是否為純英文字母

在php中,可以使用preg_match()函數來搭配正規表示式來檢查。

使用的正規表示式:"/^[a-zA-Z\s] $/"

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() 在第一次符合後將會停止搜尋。

如果傳回值為1則只有字母,傳回值為0則包含其他字元。

範例:

<?php
header(&#39;content-type:text/html;charset=utf-8&#39;);  
echo preg_match("/^[a-zA-Z\s]+$/","abcddfkj")."<br>";
echo preg_match("/^[a-zA-Z\s]+$/","ab12kj");
?>

php怎麼偵測字串是否只有字母

這樣的輸出不太好,我們自訂一個函數,做個處理,只有字母就回傳true,反之返回false

function is_english($str)
{
    if(preg_match("/^[a-zA-Z\s]+$/",$str)){
        return true;
    }
    return false;
}

呼叫函數,判斷字串是否由純英文字母組成

var_dump(is_english(&#39;php.cn&#39;)); 
// bool(false)   含有标点符号所以返回 false  
var_dump(is_english(&#39;phpcn&#39;));  
// bool(true)
var_dump(is_english(&#39;phpcn123&#39;)); 
// bool(false)   含有123
var_dump(is_english(&#39;欢迎来到这里&#39;)); 
// bool(false)   都是中文

php怎麼偵測字串是否只有字母

推薦學習:《PHP視頻教程

以上是php怎麼偵測字串是否只有字母的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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