如何检查JavaScript中的字符串是否全部大写?

Dan*_*ilo 30 javascript string

有一个Javascript/Jquery布尔函数来测试字符串是否全部大写?

匹配的例子:

"hello" => false
"Hello" => false
"HELLO" => true
Run Code Online (Sandbox Code Playgroud)

And*_*ker 78

function isUpperCase(str) {
    return str === str.toUpperCase();
}


isUpperCase("hello"); // false
isUpperCase("Hello"); // false
isUpperCase("HELLO"); // true
Run Code Online (Sandbox Code Playgroud)

你也可以增加String.prototype:

String.prototype.isUpperCase = function() {
    return this.valueOf().toUpperCase() === this.valueOf();
};


"Hello".isUpperCase(); // false
"HELLO".isUpperCase(); // true
Run Code Online (Sandbox Code Playgroud)

  • `isUpperCase( "123"); //真 (8认同)

小智 19

我必须在这里至少写一个句子,因为他们不喜欢这里的简短答案,但这是我能想到的最简单的解决方案:

s.toUpperCase() === s

  • 两句话+1! (2认同)
  • 哈哈,有人亲自接过了.对你有好处(我有一个downvote)! (2认同)
  • 我***`LOVE` ***简短答案! (2认同)

Dan*_*Tao 13

这是另一种选择:

function isUpperCase(str) {
  return (/^[^a-z]*$/).test(str);
}
Run Code Online (Sandbox Code Playgroud)

  • 很好,但通过将正则表达式更改为`/ ^ [AZ]*$ /`它也会丢弃数字和标点符号. (9认同)
  • 请谨慎使用上述正则表达式,因为它会拒绝像“ABC123”这样明显是大写的字符串。相反,请使用以下正则表达式:`function isUpper(str) { return !/[az]/.test(str) && /[AZ]/.test(str) }`。“123”或“WE23a”等字符串返回 false,而“W390”等字符串返回 true。 (2认同)