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

IT技术 javascript
2021-02-01 11:40:00

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

6个回答

如果字符或整个字符串是数字,则 josh 和 maleki 的答案将在大小写上都返回 true。使结果成为错误的结果。使用 josh 的示例

var character = '5';
if (character == character.toUpperCase()) {
 alert ('upper case true');
}
if (character == character.toLowerCase()){
 alert ('lower case true');
}

另一种方法是先测试它是否是数字,否则测试它是大写还是小写示例

var strings = 'this iS a TeSt 523 Now!';
var i=0;
var character='';
while (i <= strings.length){
    character = strings.charAt(i);
    if (!isNaN(character * 1)){
        alert('character is numeric');
    }else{
        if (character == character.toUpperCase()) {
            alert ('upper case true');
        }
        if (character == character.toLowerCase()){
            alert ('lower case true');
        }
    }
    i++;
}
如果字符既不是数字也不是字母,例如标点符号,您是否仍然会得到相同的错误结果?
2021-03-14 11:40:00
未捕获的语法错误:意外的令牌;在第 4 行,while (i &lt;= strings.length){这行有一些胡言乱语
2021-03-21 11:40:00
这段代码会提醒标点符号!是数字。
2021-03-23 11:40:00
2021-04-10 11:40:00
为什么不检查字符是否等于它自己的小写和大写,如果两者都为真,则为假。
2021-04-12 11:40:00
if (character == character.toLowerCase())
{
  // The character is lowercase
}
else
{
  // The character is uppercase
}

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

我发现这非常适合它:

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

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

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

要检查一封信,只需使用 isLowerCase(str[charIndex])

转换整个字符串只是为了检查一个字符的 ASCII 值?浪费。
2021-03-20 11:40:00
不知道为什么其他答案被投票。这也是我能想到的唯一解决方案 - 逻辑是“字符是否具有大写和小写变体?如果是,则返回它是大写还是小写”
2021-03-22 11:40:00
function isLowerCase(str) { return str == str.toLowerCase() }
2021-03-22 11:40:00
抱歉,这似乎与另一个三年前的答案重复
2021-03-25 11:40:00
@GaurangTandon 是的,在回答 2 年后,我也注意到了这一点,但我之前没有注意到,因为它包含在 for 循环中,将某些内容记录到控制台,并且通常不是可重用的代码片段,因此我和(基于对此的投票)答案)很多其他人自然只是跳过了答案。因此,我认为将此作为快速复制粘贴答案而不是其他答案是件好事。
2021-03-27 11:40:00

如果字符是大写字母,这将记录为真,而在所有其他情况下记录为假:

var letters = ['a', 'b', 'c', 'A', 'B', 'C', '(', ')', '+', '-', '~', '*'];

​​​for (var ​i = 0; i<letters.length; i++) {
    if (letters[i] === letters[i].toUpperCase()
        && letters[i] !== letters[i].toLowerCase()) {
        console.log(letters[i] + ": " + true);
    } else {
        console.log(letters[i] + ": " + false);
    }
}​

你可以在这里测试它:http : //jsfiddle.net/Axfxz/(使用 Firebug 或 sth)。

​​​for (var ​i = 0; i<letters.length; i++) {
    if (letters[i] !== letters[i].toUpperCase()
        && letters[i] === letters[i].toLowerCase()) {
        console.log(letters[i] + ": " + true);
    } else {
        console.log(letters[i] + ": " + false);
    }
}​

这是小写的:)。

好的,试试这个: შეარჩიე კატეგორიების მიხედვით
2021-04-01 11:40:00
顺便说一句,也适用于重音字符,如“É”、“Ñ”和“ñ”。
2021-04-04 11:40:00
不幸的是,有些小写字母没有大写字母(也可能反过来)。德语 'ß' 是一个小写字母,但如果在其上应用第二个函数,则会导致错误。
2021-04-10 11:40:00
const isUpperCase = (string) => /^[A-Z]*$/.test(string)

然后 :

isUpperCase('A') // true
isUpperCase('a') // false
你确定这是 Go,而不是 JS?
2021-03-20 11:40:00
@latitov 你是什么意思?这是纯 JavaScript。
2021-04-08 11:40:00
迄今为止的最佳答案,快速,不分配任何内存或转换数据。
2021-04-11 11:40:00
不适用于重音字符 (á, Á)、元音突变 (öÖ, äÄ, üÜ) 和字素 (ß,ẞ) tho。
2021-04-12 11:40:00