Underscores in the string will result in false, so you have to remove them first.
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
ctype_upper — Проверяет наличие символов в верхнем регистре
Проверяет, все ли символы в переданной строке
text
являются буквами в верхнем регистре.
text
Проверяемая строка.
Замечание:
Если передано целое число (int) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.
Возвращает true
, если каждый символ в строке text
является прописной буквой в текущей локали.
Пример #1 Пример использования ctype_upper() (с использованием локали по умолчанию)
<?php
$strings = array('AKLWC139', 'LMNSDO', 'akwSKWsm');
foreach ($strings as $testcase) {
if (ctype_upper($testcase)) {
echo "Строка $testcase состоит только из букв в верхнем регистре.\n";
} else {
echo "Строка $testcase не состоит только из букв в верхнем регистре.\n";
}
}
?>
Результат выполнения данного примера:
Строка AKLWC139 не состоит только из букв в верхнем регистре. Строка LMNSDO состоит только из букв в верхнем регистре. Строка akwSKWsm не состоит только из букв в верхнем регистре.
Underscores in the string will result in false, so you have to remove them first.
// after screwing around with function.ctype-upper
// I found this simple solution
if (strtolower($string) != $string)// its so simple!
{
echo "uppercase letters found in $string";
}
source: http://stackoverflow.com/questions/4426327/how-to-detect-if-string-contains-1-uppercase-letter-in-php