如何使用JavaScript测试字符串中的字母是大写还是小写?


当前回答

我需要测试任何字符的字符串(包括空白,标记,数字,unicode字符…)因为空白、数字、标记……大写字母和小写字母都是一样的,我想找到真正的大写字母,我这样做:

let countUpperCase = 0;
let i = 0;
while (i <= string.length) {
  const character = string.charAt(i);
  if (character === character.toUpperCase() && character !== character.toLowerCase()) {
    countUpperCase++;
  }
  i++;
}

其他回答

假设一个字符串只有在至少有一个小写字母的情况下才被认为不全是大写,这可以正常工作。我知道它不像其他人试图做的那样简洁,但它有效吗=)

function isUpperCase(str) {
    for (var i = 0, len = str.length; i < len; i++) {
        var letter = str.charAt(i);
        var keyCode = letter.charCodeAt(i);
        if (keyCode > 96 && keyCode < 123) {
            return false;
        }
    }

    return true;
}
const isUpperCase = (string) => /^[A-Z]*$/.test(string)

然后:

isUpperCase('A') // true
isUpperCase('a') // false
function checkCharType (charToCheck) {
    // body... 
    var returnValue = "O";
    var charCode = charToCheck.charCodeAt(0);

    if(charCode >= "A".charCodeAt(0) && charCode <= "Z".charCodeAt(0)){

        returnValue = "U";

    }else if (charCode >= "a".charCodeAt(0) &&
                charCode <= "z".charCodeAt(0) ){
        returnValue = "L";
    }else if (charCode >= "0".charCodeAt(0) &&
            charCode <= "9".charCodeAt(0)  ) {
        returnValue = "N";
    }
    return returnValue;
}

var myString = prompt("Enter Some text: ", "Hello world !");

switch (checkCharType(myString)) {
    case "U":
        // statements_1
        document.write("First character was upper case");
        break;

    case "L":
        document.write("First character was a lower case");
        break;
    case "N":
        document.write("First character was a number");
        break
    default:
        // statements_def
        document.write("First character was not a character or a number");
        break;
}

Define a Function checkCharType().By declaring the variable returnValue and initialising it to the Character "O" to indicate it's Some other value. U for uppercase; L for Lowercase ; N for number Use the charCodeAt() method to get the character code of the first character. Using if Statement , which check within what range of values the character code falls. If it falls between the character codes for A and Z, Its Uppercase, character code between a and z ,Its Lowercase. and so on. "A".charCode(0) var myChar = new String("A"); myChar.charCodeAt(0); "A" : number code "65“ Check the String

其他答案的问题是,一些字符,如数字或标点符号,在检查小写/大写时也返回true。

我发现这个方法非常有效:

function isLowerCase(str)
{
    return str == str.toLowerCase() && str != str.toUpperCase();
}

这适用于标点符号、数字和字母:

assert(isLowerCase("a"))
assert(!isLowerCase("Ü"))
assert(!isLowerCase("4"))
assert(!isLowerCase("_"))

要检查一个字母,只需使用isLowerCase(str[charIndex])

这检查了整个字符串,而不仅仅是第一个字母。我想跟大家分享一下。

下面是一个函数,它使用正则表达式来测试字符串中的字母;如果字母是大写的(A-Z),则返回true。然后我们将true/false数组缩减为单个值。如果它等于字符串的长度,这意味着所有字母都通过了regex测试,这意味着字符串是大写的。如果不是,则字符串为小写。

const isUpperCase = (str) => {
  let result = str
    .split('')
    .map(letter => /[A-Z]/.test(letter))
    .reduce((a, b) => a + b);

  return result === str.length;
}

console.log(isUpperCase('123')); // false
console.log('123' === '123'.toUpperCase()); // true