文字列内のすべての文字が大文字であることを知る方法は?
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 に答える