两种方法: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

1.png

方法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');
?>

2.png

  • 第一个字符串中没有大写字母,因此没有匹配,返回0;而0在if语句的()中会被自动转为FALSE;因此执行else中的代码。

  • 第二个字符串中有大写字母,因此有匹配,返回1;而1在if语句的()中会被自动转为TRUE;因此直接执行if后的代码。


php怎么检测字符串含大写字母吗