PHP: nasıl bir dize tüm harfler büyük harf olduğunu bilmek?

5 Cevap

Nasıl bir dize tüm harfler büyük harf olduğunu bilmek?

5 Cevap

Kullanmak strtoupper sizin dize harfe dönüştürmek olabilir. Sen şimdi büyük olduğunu biliyorum, ve orijinal dize eşleşir olmadığını kontrol edebilirsiniz.

yani.

$str === strtoupper($str)

Sen, dizenin bir kopyasını yapmayı deneyin harflere kopyasını dönüştürmek ve özgün dizeye karşılaştırabilirsiniz:

public function isUpperCase ($string) {
   return $string === strtoupper($str);
}

OR, (multibyte güvenli * olan) daha iyi bir versiyonu olacaktır:

public function mb_isUpperCase ($string) {
   $upper = mb_convert_case( 
      $string, 
      MB_CASE_UPPER, 
      mb_detect_encoding( 
         $string
      )
   );
   return $string === $upper;
}

* mb_detect_encoding başarısız ve yanlış dönebilirsiniz unutmayın. Bir üretim ortamında size mb_detect_encoding mümkün kodlamaları bir listesini sunmak, ya da mb_detect_encoding başarısız durumda işlemek gerekir ya.

tüm karakterler harf vardır ve bir ASCII dizesi ise ctype_upper () bir olasılık olabilir.

Bir kopyasını yapmak istemiyorum onun uzun bir dize ve sonra dize yürümek ve her karakterin ASCII değeri bakarsanız. Den az 97 ise, tüm büyük olduğunu biliyorum.