Check if a String is ALL CAPS in PHP

前端 未结 9 2511
温柔的废话
温柔的废话 2020-12-05 22:46

What\'s the best way to see if a string contains all capital letters? I still want the function to return true if the string also contains symbols or numbers.

相关标签:
9条回答
  • 2020-12-05 23:11

    PCRE solution:

    $all_uppercase = preg_match('#^[A-Z]+$#', $string);
    

    just make sure you don't use 'i' modifier

    0 讨论(0)
  • 2020-12-05 23:11
    if(mb_strtoupper($string)===$string)
    {
      do the required task
    }
    else
    {
      some other task
    }
    
    0 讨论(0)
  • 2020-12-05 23:13

    I think you are looking for this function

    $myString = "ABCDE";
    if (ctype_upper($myString)) // returns true if is fully uppercase
    {
        echo "the string $myString is fully uppercase";
    }
    

    Hope it helps

    0 讨论(0)
  • 2020-12-05 23:14

    ctype_upper(string $testString)

    0 讨论(0)
  • 2020-12-05 23:14

    You can use preg_match(). The regular expression would be /^[^a-z]+$/.

    return preg_match('/^[^a-z]+$/', $string) === 1 ? true : false;
    

    Here is the documentation for preg_match().

    http://php.net/manual/en/function.preg-match.php

    0 讨论(0)
  • 2020-12-05 23:18

    In addition to Alexander Morland's comment on Winston Ewert's answer if you need to deal with utf-8 accented characters you can use the following set of functions:

    define('CHARSET', 'utf-8');
    
    function custom_substr($content='',$pos_start=0,$num_char=1){
        $substr='';
        if(function_exists('mb_substr')){
            $substr=mb_substr($content,$pos_start,$num_char,CHARSET);
        }
        else{
            $substr=substr($content,$pos_start,$num_char);
        }
        return $substr;
    }
    function custom_str_case($string='', $case='lower'){
        $lower = array(
            "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u",
            "v", "w", "x", "y", "z", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï",
            "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "ø", "ù", "ú", "û", "ü", "ý", "а", "б", "в", "г", "д", "е", "ё", "ж",
            "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы",
            "ь", "э", "ю", "я"
        );
        $upper = array(
            "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U",
            "V", "W", "X", "Y", "Z", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï",
            "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж",
            "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ъ",
            "Ь", "Э", "Ю", "Я"
        );
    
        if($case=='lower'){
            $string = str_replace($upper, $lower, $string);
        }
        else{
            $string = str_replace($lower, $upper, $string);
        }
    
        return $string;
    }
    function custom_strtolower($string){
        return custom_str_case($string,'lower');
    }
    function custom_strtoupper($string){
        return custom_str_case($string,'upper');
    }
    
    function custom_ucfirst($string){
        $string=custom_strtolower($string);
    
        $first_char=custom_substr($string,0,1);
        $rest_char=custom_substr($string,1,custom_strlen($string));
        $first_char=custom_strtoupper($first_char);
    
        return $first_char.$rest_char;
    }
    
    function is_uppercase($string=''){
        $is_uppercase=false;
    
        if($string === custom_strtoupper($string)) {
           $is_uppercase=true;
        }
    
        return $is_uppercase;
    }
    function is_ucfirst($string=''){
        $first_char=custom_substr($string,0,1);
    
        $is_ucfirst=is_uppercase($first_char);
    
        return $is_ucfirst;
    }
    

    Resources:: https://github.com/rafasashi/PHP-Custom-String-Functions

    0 讨论(0)
提交回复
热议问题