Как проверить, если строка имеет только заглавные буквы?


Как я могу проверить, если все символы string являются заглавные буквы?

, предпочтительно, без использования регулярных выражений.

 14
Author: Wallace Maxters, 2013-12-11

3 answers

Для этого можно использовать функцию ctype_upper.

$string1 = 'ALLCAPS';
$string2 = 'NotAlLCAPS';

var_dump( ctype_upper( $string1 ), ctype_upper( $string2 ) );
//bool(true)
//bool(false)

В Случае необходимости разрешить цифр, пробелов и символов в целом, вы можете использовать это еще одна альтернатива, которая использует функцию mb_strtoupper:

mb_strtoupper( $string1 ) === $string1;
 23
Author: jonathancardoso, 2016-08-18 11:44:55
$string    = "ABCDE";  
$uppercase = preg_match('#^[A-Z]+$#', $string);  

,

$string   = "ABCDE";
if (ctype_upper($string)) // retorna true se toda string estiver em maiúscula  
{  
    echo "A string $string está toda em maiúscula";  
}
 13
Author: Flávio H. Ferreira, 2013-12-16 14:14:42

Существует еще один способ, это сравнить, если строка равна она же в вызове strtoupper.

$upper = 'TUDO UPPER';

$non_upper = 'Nem Tudo UPPER';


if (strtoupper($upper) === $upper) {
    echo "Sim, é tudo maiúscula";
}

if (strtoupper($non_upper) !== $non_upper) {
     echo "Não é tudo maiúscula";
}
 4
Author: Wallace Maxters, 2016-05-16 20:15:04