小智 302
如果字符或整个字符串是数字,josh和maleki的答案将在大写和小写都返回true.使结果成为错误的结果.使用josh的例子
var character = '5';
if (character == character.toUpperCase()) {
alert ('upper case true');
}
if (character == character.toLowerCase()){
alert ('lower case true');
}
Run Code Online (Sandbox Code Playgroud)
另一种方法是首先测试它是否为数字,否则测试它是否为大写或小写示例
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++;
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*uis 56
if (character == character.toLowerCase())
{
// The character is lowercase
}
else
{
// The character is uppercase
}
Run Code Online (Sandbox Code Playgroud)
cie*_*bor 42
如果字符是大写字母,则将记录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);
}
}?
Run Code Online (Sandbox Code Playgroud)
你可以在这里测试一下: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);
}
}?
Run Code Online (Sandbox Code Playgroud)
这是小写:).
Web*_*001 36
其他答案的问题是,当检查小写/大写时,某些字符(如数字或标点符号)也会返回true.
我发现这对它非常有效:
function isLowerCase(str)
{
return str == str.toLowerCase() && str != str.toUpperCase();
}
Run Code Online (Sandbox Code Playgroud)
这适用于标点符号,数字和字母:
assert(isLowerCase("a"))
assert(!isLowerCase("Ü"))
assert(!isLowerCase("4"))
assert(!isLowerCase("_"))
Run Code Online (Sandbox Code Playgroud)
要检查一个字母,只需使用即可 isLowerCase(str[charIndex])
Koo*_*Inc 20
您可以使用正则表达式测试和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
Run Code Online (Sandbox Code Playgroud)
Abd*_*UMI 19
const isUpperCase = (string) => /^[A-Z]*$/.test(string)
Run Code Online (Sandbox Code Playgroud)
然后 :
isUpperCase('A') // true
isUpperCase('a') // false
Run Code Online (Sandbox Code Playgroud)
Jos*_*osh 16
function isUpperCase(myString) {
return (myString == myString.toUpperCase());
}
function isLowerCase(myString) {
return (myString == myString.toLowerCase());
}
Run Code Online (Sandbox Code Playgroud)
Jen*_*ens 11
使用现代浏览器,您可以使用 regexp 和 unicode 属性测试,例如
\n/\\p{Lu}/u.test("A") // is true\n/\\p{Lu}/u.test("\xc3\x85") // is true\n/\\p{Lu}/u.test("a1\xc3\xa5") // is false\nRun Code Online (Sandbox Code Playgroud)\n更多信息请点击这里:
\n\n此处的一般类别列表:
\n\nmal*_*eki 10
更具体地说是被问到的问题.传入一个字符串和一个要检查的位置.非常接近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());
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用正则表达式显式检测大写罗马字母字符.
isUpperCase = function(char) {
return !!/[A-Z]/.exec(char[0]);
};
Run Code Online (Sandbox Code Playgroud)
编辑:上述函数对于ASCII/Basic拉丁语Unicode是正确的,这可能就是你所关心的.以下版本还支持Latin-1 Supplement和Greek和Coptic Unicode块...如果您出于某种原因需要它.
isUpperCase = function(char) {
return !!/[A-ZÀ-ÖØ-Þ??-??-?????????????-?]/.exec(char[0]);
};
Run Code Online (Sandbox Code Playgroud)
如果你需要进一步的支持(Ѭ大写?),这个策略开始下降,因为有些块混合了大写和小写字符.
小智 7
我相信这是最简单的解决方案..您可以在输入字段中使用 onchange 处理程序..进行验证
const isValid = e.target.value === e.target.value.toLowerCase()
if (isValid) {
//Do something
} else {
//Do something
}
Run Code Online (Sandbox Code Playgroud)
有一个非常简单的答案,没有人提到:
function isLowerCase(str) {
return str !== str.toUpperCase();
}
Run Code Online (Sandbox Code Playgroud)
如果str.toUpperCase()不返回相同str,则必须为小写。要测试大写,请将其更改为str !== str.toLowererCase()。
与其他答案不同,它可以在非字母字符(返回false)上正常工作,并且可以在其他字母,重音符号等上工作。
function isCapital(ch){
return ch.charCodeAt() >= 65 && ch.charCodeAt() <= 90;
}
Run Code Online (Sandbox Code Playgroud)
这个问题的一个很好的答案应该是简洁,正确处理unicode并处理空字符串和null。
function isUpperCase(c) {
return !!c && c != c.toLocaleLowerCase();
}
Run Code Online (Sandbox Code Playgroud)
此方法首先处理空字符串,然后处理null,然后确保将给定字符串转换为小写会更改其相等性。这样可以确保该字符串根据当前本地的大写规则包含至少一个大写字母(并且不会对数字和其他没有大写字母的字形返回假肯定)。
最初的问题专门询问有关测试第一个字符的问题。为了使您的代码简单明了,我将第一个字符从字符串中分离出来,而不是测试它是否为大写。
这是使用简单正则表达式的简单易读的解决方案。
// Get specific char in string
const char = string.charAt(index);
const isLowerCaseLetter = (/[a-z]/.test(char));
const isUpperCaseLetter = (/[A-Z]/.test(char));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
339028 次 |
| 最近记录: |