Hướng dẫn how do i check if a letter is uppercase in php? - làm cách nào để kiểm tra xem một chữ cái có phải là chữ hoa trong php không?

[Php 4> = 4.0.4, Php 5, Php 7, Php 8]

CTYPE_UPPER - Kiểm tra [các] ký tự chữ hoaCheck for uppercase character[s]

Sự mô tả

ctype_upper [hỗn hợp $text]: bool[mixed $text]: bool

Thông số

text

Chuỗi được kiểm tra.

Ghi chú::

Nếu bao gồm một int giữa -128 và 255, nó được hiểu là giá trị ASCII của một ký tự duy nhất [giá trị âm có 256 được thêm vào để cho phép các ký tự trong phạm vi ASCII mở rộng]. Bất kỳ số nguyên nào khác được hiểu là một chuỗi chứa các chữ số thập phân của số nguyên.int between -128 and 255 inclusive is provided, it is interpreted as the ASCII value of a single character [negative values have 256 added in order to allow characters in the Extended ASCII range]. Any other integer is interpreted as a string containing the decimal digits of the integer.

Cảnh báo

Kể từ Php 8.1.0, việc chuyển một đối số không chuỗi được không phản đối. Trong tương lai, đối số sẽ được hiểu là một chuỗi thay vì một codepoint ASCII. Tùy thuộc vào hành vi dự định, đối số nên được chuyển vào chuỗi hoặc một cuộc gọi rõ ràng đến chr [] nên được thực hiện.string or an explicit call to chr[] should be made.

Trả về giá trị

Trả về true nếu mọi ký tự trong text là một chữ cái viết hoa trong ngôn ngữ hiện tại. Khi được gọi với một chuỗi trống, kết quả sẽ luôn là

echo preg_match['~^\p{Lu}~u', $string] ? 'upper' : 'lower';
0.true if every character in text is an uppercase letter in the current locale. When called with an empty string the result will always be
echo preg_match['~^\p{Lu}~u', $string] ? 'upper' : 'lower';
0
.

Ví dụ

Ví dụ #1 ví dụ CTYPE_UPPER [] [sử dụng locale mặc định]ctype_upper[] example [using the default locale]

echo preg_match['~^\p{Lu}~u', $string] ? 'upper' : 'lower';
1

Ví dụ trên sẽ xuất ra:

The string AKLWC139 does not consist of all uppercase letters.
The string LMNSDO consists of all uppercase letters.
The string akwSKWsm does not consist of all uppercase letters.

Xem thêm

  • CTYPE_ALPHA [] - Kiểm tra [các] ký tự chữ cái
  • ctype_lower [] - Kiểm tra [các] ký tự chữ thường
  • setlocale [] - Đặt thông tin địa phương

Theo ý kiến ​​của tôi, việc thực hiện cuộc gọi

echo preg_match['~^\p{Lu}~u', $string] ? 'upper' : 'lower';
2 là cuộc gọi trực tiếp, ngắn gọn và đáng tin cậy nhất so với các giải pháp được đăng khác ở đây.

echo preg_match['~^\p{Lu}~u', $string] ? 'upper' : 'lower';

Sự cố mô hình của tôi:

~      # starting pattern delimiter 
^      #match from the start of the input string
\p{Lu} #match exactly one uppercase letter [unicode safe]
~      #ending pattern delimiter 
u      #enable unicode matching

Vui lòng thông báo khi

echo preg_match['~^\p{Lu}~u', $string] ? 'upper' : 'lower';
3 và
echo preg_match['~^\p{Lu}~u', $string] ? 'upper' : 'lower';
4 không thành công với pin thử nghiệm này.

Mã: [Demo]

$tests = ['âa', 'Bbbbb', 'Éé', 'iou', 'Δδ'];

foreach [$tests as $test] {
    echo "\n{$test}:";
    echo "\n\tPREG:  " , preg_match['~^\p{Lu}~u', $test]      ? 'upper' : 'lower';
    echo "\n\tCTYPE: " , ctype_upper[mb_substr[$test, 0, 1]]  ? 'upper' : 'lower';
    echo "\n\t< a:   " , mb_substr[$test, 0, 1] < 'a'         ? 'upper' : 'lower';

    $chr = mb_substr [$test, 0, 1, "UTF-8"];
    echo "\n\tMB:    " , mb_strtoupper[$chr, "UTF-8"] == $chr ? 'upper' : 'lower';
}

Output:

âa:
    PREG:  lower
    CTYPE: lower
    < a:   lower
    MB:    lower
Bbbbb:
    PREG:  upper
    CTYPE: upper
    < a:   upper
    MB:    upper
Éé:               

Bài Viết Liên Quan

Chủ Đề