JavaScript 中检查 String 是否全部为大写

要检查字符串是否全部为大写,请使用 toUppercase() 方法将字符串转换为大写并将其与自身进行比较。 如果比较返回真,则字符串全部为大写。

const str = 'HELLO WORLD';

if (str.toUpperCase() === str) {
  // 👇️ this runs
  console.log('✅ string is all uppercase');
} else {
  console.log('⛔️ string is NOT all uppercase');
}

我们使用 String.toUpperCase() 方法将字符串转换为大写,以便进行比较。

如果将字符串的大写变体与字符串本身进行比较返回 true,则我们有一个大写字符串。

const str = 'HELLO WORLD';

console.log(str.toUpperCase()); // 👉️ HELLO WORLD
console.log(str === str.toUpperCase()); // 👉️ true

否则,该字符串包含小写字符。

const str = 'Hello World';

console.log(str.toUpperCase()); // 👉️ HELLO WORLD
console.log(str.toUpperCase() === str); // 👉️ false

但是 ,这种方法不适用于数字或标点符号,因为它们不能是大写或小写。

const str = '!!!';

if (str.toUpperCase() === str) {
  // 👇️ this runs ...
  console.log('✅ string is all uppercase');
} else {
  console.log('⛔️ string is NOT all uppercase');
}

为了解决这个问题,我们必须检查字符串是否有大写和小写变体。

const str = '!!!';

if (str.toUpperCase() === str &&
    str !== str.toLowerCase()) {
  console.log('✅ string is all uppercase');
} else {
  // 👉️ this runs
  console.log('⛔️ string is NOT all uppercase');
}

我们的 if 语句中有两个条件:

  1. 检查字符串的大写变体是否等于字符串
  2. 检查字符串是否不等于它的小写变体

这两个条件都必须满足,我们才能得出字符串全部大写的结论。

我们基本上检查字符串是否有大写和小写变体,因为数字和标点符号没有。

const str = '100';

// 👇️ true
console.log(str.toUpperCase() === str.toLowerCase());

如果我们知道字符串是大写的并且它不等于它的小写变体,那么我们就有了一个全大写的字符串。

否则字符串至少包含 1 个小写字母、数字或标点符号。