PHP 怎樣判斷一個字符是字母
最近更新時間 2020-12-15 14:10:03
有時,程序中需要判斷一個字符是否是字母。可以使用正則表達式或者PHP內置函數判斷。本篇只講解判斷一個字符而非字符串,所以以下示例中的輸入參數都是一個字符。
以下函數只判斷一個字符是否字母,如果輸入的是字符串可能會有異常結果,最好在函數中進行字符長度的校驗。
第一種 - 使用正則表達式判斷是否為字母。
preg_match() 函數根據正則表達式返回匹配的次數,值為 0次(不匹配)或 1次,函數在第一次匹配後將停止搜索。
<?php
/**
* PHP 怎樣判斷一個字符是字母
*
* @since Version 1.0.0
* @filesource
*/
// 判斷一個字符是否是字母
function is_alpha($char) {
//判斷字符長度,只處理一個字符
if(mb_strlen($char) != 1) return 0;
// 大寫或小寫字母
$pattern = '/[A-Za-z]/';
return preg_match($pattern, $char);
}
$char = 'P';
$retVal = is_alpha($char);
var_dump($retVal);
int(1)
第二種 - 使用 ctype_alpha() 函數判斷是否為字母。
ctype_alpha() 函數輸入的所有字符都是字母([A-Za-z])則返回 true 否則返回 false。函數等同於(ctype_upper($text) || ctype_lower($text))
。
<?php
/**
* PHP 怎樣判斷一個字符是字母
*
* @since Version 1.0.0
* @filesource
*/
// 判斷一個字符是否是字母
function is_alpha($char) {
//判斷字符長度,只處理一個字符
if(mb_strlen($char) != 1) return false;
// return (ctype_upper($char) || ctype_lower($char));
return ctype_alpha($char);
}
$char = 'P';
$retVal = is_alpha($char);
var_dump($retVal);
bool(true)
第三種 - 通過字符的 ASCII 編碼判斷。
使用 ord() 函數獲取字符的 ASCII 編碼,再根據編碼值大小進行判斷。
- ASCII 編碼值
-
- A-Z:65-90
- a-z:97-122
- 0-9:48-57
<?php
/**
* PHP 怎樣判斷一個字符是字母
*
* @since Version 1.0.0
* @filesource
*/
// 判斷一個字符是否是字母
function is_alpha($char) {
//判斷字符長度,只處理一個字符
if(mb_strlen($char) != 1) return false;
// 返回 ASCII 編碼
$ord = ord($char);
return (65<=$ord && $ord<=90 || 97<=$ord && $ord<=122);
}
$char = 'a';
$retVal = is_alpha($char);
var_dump($retVal);
bool(true)