php中,可用preg_match()函數(shù)配合正則表達(dá)式“/^[a-zA-Zs]+$/”來(lái)檢測(cè)字符串是否只有字母,語(yǔ)法“preg_match("/^[a-zA-Zs]+$/",字符串)”;如果返回值為1則只有字母,返回0則包含其他字符。
本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版、DELL G3電腦
php檢測(cè)字符串是否只有字母,換個(gè)說(shuō)法就是:判斷字符串是否為純英文字母
在php中,可以使用preg_match()函數(shù)配合正則表達(dá)式來(lái)檢查。
使用的正則表達(dá)式:"
/^[a-zA-Zs]+$/
"
preg_match() 函數(shù)可以根據(jù)正則表達(dá)式對(duì)字符串進(jìn)行搜索匹配,函數(shù)的語(yǔ)法格式如下:
preg_match($pattern,$subject [, &$matches [, $flags = 0 [, $offset = 0 ]]])
參數(shù)說(shuō)明如下:
- $pattern:要搜索的模式,也就是編輯好的正則表達(dá)式;
- $subject:要搜索的字符串;
- $matches:可選參數(shù)(數(shù)組類型),如果提供了 $matches,它將被填充為搜索結(jié)果。 $matches[0] 包含完整模式匹配到的文本, $matches[1] 包含第一個(gè)捕獲子組匹配到的文本,以此類推;
- $flags:可選參數(shù),$flags 可以被設(shè)置為 PREG_OFFSET_CAPTURE,如果傳遞了這個(gè)標(biāo)記,對(duì)于每一個(gè)出現(xiàn)的匹配,返回時(shí)都會(huì)附加上字符串偏移量(相對(duì)于目標(biāo)字符串的);
- $offset:可選參數(shù),用于指定從目標(biāo)字符串的哪個(gè)位置開始搜索(單位是字節(jié))。
preg_match() 函數(shù)可以返回 $pattern 的匹配次數(shù),它的值將是 0 次(不匹配)或 1 次,因?yàn)?preg_match() 在第一次匹配后將會(huì)停止搜索。
如果返回值為1則只有字母,返回值為0則包含其他字符。
示例:
<?php header('content-type:text/html;charset=utf-8'); echo preg_match("/^[a-zA-Zs]+$/","abcddfkj")."<br>"; echo preg_match("/^[a-zA-Zs]+$/","ab12kj"); ?>
這樣的輸出不怎么好,我們自定義一個(gè)函數(shù),做個(gè)處理,只有字母就返回true,反之返回false
function is_english($str) { if(preg_match("/^[a-zA-Zs]+$/",$str)){ return true; } return false; }
調(diào)用函數(shù),判斷字符串是否由純英文字母組成
var_dump(is_english('php.cn')); // bool(false) 含有標(biāo)點(diǎn)符號(hào)所以返回 false var_dump(is_english('phpcn')); // bool(true) var_dump(is_english('phpcn123')); // bool(false) 含有123 var_dump(is_english('歡迎來(lái)到這里')); // bool(false) 都是中文
推薦學(xué)習(xí):《PHP視頻教程》