两种方法:1、用strlen()和ord()检查每个字母是否为大写,语法“for($i=0;$i<字符串长度;$i++){if(ord($str[$i])>=ord('A')&&ord($str[$i])<=ord('Z')){//含大写字母}}”。2、用preg_match()配合正则表达式来检测,语法“preg_match('/[A-Z]/', $str)”,若返回1则含。
本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑
php检查字符串中是否含有大写字母,也可以理解为判断字符串中的所有字母是否为小写。可以利用下面两种方法来判断。
方法1:strlen() +ord() 函数一个个的检查字符串中的每个字母是否为大写
-
先使用 strlen() 函数来获取字符串的长度再循环取出单个字母
-
然后再利用 php ord() 函数来检查每一个字母是否为大写
ord() 函数可以返回字符的 ASCII 值。
而ASCII 值在65~90为26个大写英文字母,在97~122号为26个小写英文字母。
只需获取字符的ASCII 值,在检查是否在65~90间即可。
PHP自定义函数:
/** * # 检测字符串中是否含有大写字母 * @param string 要判断的字符串 * * @return bool 含有大写字母返回 TRUE 否则返回 FALSE */ function is_bigstr($str) { for ($i = 0; $i < strlen($str); $i++) { if (ord($str[$i]) >= ord('A') && ord($str[$i]) <= ord('Z')) { return true; } } return false; }
函数调用:
var_dump(is_bigstr('hello')); // false var_dump(is_bigstr('Hello')); // true
方法2:使用preg_match()函数配合正则表达式来检测是否含有大写字母
preg_match 函数用于执行一个正则表达式pattern匹配,会返回 pattern 的匹配次数(0或1)。0代表没有匹配,1代表有匹配。
用到的正则为:/[A-Z]/
,用于查找大写字母
<?php header('content-type:text/html;charset=utf-8'); function is_bigstr($str) { if(preg_match('/[A-Z]/', $str)){ echo '有大写字母!<br>'; }else{ echo '没有大写字母!<br>'; } } is_bigstr('hello'); is_bigstr('Hello'); ?>
-
第一个字符串中没有大写字母,因此没有匹配,返回0;而0在if语句的()中会被自动转为FALSE;因此执行else中的代码。
-
第二个字符串中有大写字母,因此有匹配,返回1;而1在if语句的()中会被自动转为TRUE;因此直接执行if后的代码。
推荐学习:《PHP视频教程》