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


当前回答

如果字符是大写字母,则log true,其他情况则log false:

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或其他工具)。

​​​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);
    }
}​

这是小写的:)。

其他回答

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

然后:

isUpperCase('A') // true
isUpperCase('a') // false

在现代浏览器中,您可以使用regexp和unicode属性测试。

/\p{Lu}/u.test("A") // is true
/\p{Lu}/u.test("Å") // is true
/\p{Lu}/u.test("a1å") // is false

更多信息:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions/Unicode_Property_Escapes

一般类别列表如下:

https://unicode.org/reports/tr18/#General_Category_Property

还可以使用正则表达式显式地检测大写罗马字母字符。

isUpperCase = function(char) {
  return !!/[A-Z]/.exec(char[0]);
};

EDIT:上面的函数对ASCII/基本拉丁Unicode是正确的,这可能是你所关心的。以下版本还支持拉丁-1补充和希腊和科普特Unicode块…以防你因为什么原因需要它。

isUpperCase = function(char) {
  return !!/[A-ZÀ-ÖØ-ÞΆΈ-ΏΑ-ΫϢϤϦϨϪϬϮϴϷϹϺϽ-Ͽ]/.exec(char[0]);
};

如果您需要进一步的支持(Ѭ是大写的吗?),这个策略就会失效,因为有些块会混合大小写字符。

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++;
}
if (character == character.toLowerCase())
{
  // The character is lowercase
}
else
{
  // The character is uppercase
}