3

文字列内のすべての文字が大文字であることを知る方法は?

4

5 に答える 5

21

strtoupperを使用して、文字列を大文字に変換できます。これで大文字であることがわかり、元の文字列が大文字と一致するかどうかを確認できます。

すなわち。

$str === strtoupper($str)
于 2010-03-08T21:27:18.297 に答える
10

文字列のコピーを作成し、コピーを大文字に変換して、元の文字列と比較することができます。

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

または、より良いバージョン (マルチバイトセーフ*) は次のようになります。

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が失敗した場合に対処する必要があります。

于 2010-03-08T21:31:49.050 に答える
4
if(strcmp(strtoupper($str), $str) === 0) {
    echo 'is uppercase';
}

mb_strtoupper特殊文字エンコーディングが関係する場合に使用します。

strcmpバイナリセーフな文字列比較に使用します。

于 2010-03-08T21:28:01.953 に答える
4

ctype_upper() は、すべての文字が文字で、ASCII 文字列の場合に可能性があります。

于 2010-03-08T21:53:19.147 に答える
0

長い文字列でコピーを作成したくない場合は、文字列をたどって各文字の ascii 値を調べます。97 未満の場合は、すべて大文字であることがわかります。

于 2010-03-09T00:52:21.877 に答える