我如何使用JavaScript测试字符串中的字母是大写还是小写?
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++;
}
!
是数字。 - Barmarwhile (i <= strings.length){
这一行有些无用的内容。 - giorgio79其他答案存在的问题是,有些字符(如数字或标点符号)在检查大小写时也会返回true。
我发现这段代码非常有效,例如,现在"3"将返回false("3"默认为小写),但请考虑使用isNaN()过滤掉数字,并确保您实际上正在测试一个字符串。这里是代码:
function isLowerCase(str) {
return str === str.toLowerCase() &&
str !== str.toUpperCase();
}
assert(isLowerCase("a"))
assert(!isLowerCase("Ü"))
assert(!isLowerCase("4"))
assert(!isLowerCase("_"))
isLowerCase(str[charIndex])
进行调用。if (character == character.toLowerCase())
{
// The character is lowercase
}
else
{
// The character is uppercase
}
const isUpperCase = (string) => /^[A-Z]*$/.test(string)
然后:
isUpperCase('A') // true
isUpperCase('a') // false
如果字符为大写字母,它将记录true,并在其他情况下记录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);
}
}
这是用于小写字母的:).
根据类别进行选择
。 - vovchiskofunction isUpperCase(myString) {
return (myString == myString.toUpperCase());
}
function isLowerCase(myString) {
return (myString == myString.toLowerCase());
}
你可以使用正则表达式测试和 toUpperCase
方法:
String.prototype.charAtIsUpper = function (atpos){
var chr = this.charAt(atpos);
return /[A-Z]|[\u0080-\u024F]/.test(chr) && chr === chr.toUpperCase();
};
// usage (note: character position is zero based)
'hi There'.charAtIsUpper(3); //=> true
'BLUE CURAÇAO'.charAtIsUpper(9); //=> true
'Hello, World!'.charAtIsUpper(5); //=> false
&& chr === chr.toUpperCase();
? - Flame_Phoenix\u0080-\u024F
可能包含小写的变音符号,所以测试应该同时检查字符本身。 - KooiIncfunction isCapital(ch){
return ch.charCodeAt() >= 65 && ch.charCodeAt() <= 90;
}
(ch.charCodeAt() >= 65 && ch.charCodeAt() <= 90)
。该语句判断字符的 ASCII 码是否在大写字母的范围内,如果是则返回 true,否则返回 false。 - Engineer更具体地说,针对所要求的内容,传入一个字符串和要检查的位置。与Josh的方法非常接近,只不过这个方法将比较一个更大的字符串。本来想作为评论添加,但我还没有那个能力。
function isUpperCase(myString, pos) {
return (myString.charAt(pos) == myString.charAt(pos).toUpperCase());
}
function isLowerCase(myString, pos) {
return (myString.charAt(pos) == myString.charAt(pos).toLowerCase());
}
现代浏览器支持使用正则表达式和Unicode属性测试,例如:
/\p{Lu}/u.test("A") // is true
/\p{Lu}/u.test("Å") // is true
/\p{Lu}/u.test("a1å") // is false
更多信息请参考以下链接:
这里是通用类别列表:
/\p{Lu}/u
等同于 /\p{Uppercase_Letter}/u
。 - undefined
[:upper:]
)非常快且非常酷,但它不起作用,请参见下面的我的评论和我更正后的http://jsperf.com/isupper-comparison/7。 - Antony Hatchkinsstr == str.toUpperCase();
返回 true 或 false。 - Jacksonkrstr.toUpperCase() === str && str.toLowerCase() !== str
。 - Alireza Mirian