PHP 怎样判断一个字符是字母
Lasted 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)