如何知道字符串中的所有字母都是大写?
答案 0 :(得分:21)
答案 1 :(得分:10)
您可以尝试制作字符串的副本,将副本转换为大写,并将其与原始字符串进行比较:
public function isUpperCase ($string) {
return $string === strtoupper($str);
}
OR,更好的版本(多字节安全*)将是:
public function mb_isUpperCase ($string) {
$upper = mb_convert_case(
$string,
MB_CASE_UPPER,
mb_detect_encoding(
$string
)
);
return $string === $upper;
}
*请注意mb_detect_encoding可能会失败,并返回false。在生产环境中,您应该向mb_detect_encoding提供可能的编码列表,或处理mb_detect_encoding失败的情况。
答案 2 :(得分:4)
if(strcmp(strtoupper($str), $str) === 0) {
echo 'is uppercase';
}
使用包含特殊字符编码的mb_strtoupper
。
使用strcmp
进行二进制安全字符串比较。
答案 3 :(得分:4)
答案 4 :(得分:0)
如果它是一个长字符串并且您不想复制,那么请遍历该字符串并查看每个字符的ascii值。如果它小于97你知道它全是大写的。