我怎么知道字符串中是否所有字符都是大写的

How can I know if all chars are capitalized in a string?

本文关键字:字符 字符串 是否 我怎么知道      更新时间:2023-09-26

如何确定字符串中是否所有字母都大写?

类似:

var someVar = 'AAAAA DDSSS asssd';

或者只有超过80%的字母是大写的?

我建议:

function capitalized (str) {
    var len = str.length,
        noCapitals = str.replace(/[a-z]/g,''),
        percent = (noCapitals.length/len) * 100;
    return percent;
}
var someVar = 'AAAAA DDSSS addes',
    p = capitalized(someVar);
console.log(p);

JS Fiddle演示。

或者,如果你想有固定的精度:

function capitalized (str) {
    var len = str.length,
        noCapitals = str.replace(/[a-z]/g,''),
        percent = (noCapitals.length/len) * 100;
    return parseFloat(percent.toFixed(2));
}
var someVar = 'AAAAA DDSSS addes',
    p = capitalized(someVar);
console.log(p);

JS Fiddle演示。

更有用的是(因为我们还去掉了空白和小写),通过一个简单的检查来避免执行不必要的数学运算:

function capitalized (str) {
    var len = str.length,
        noCapitals = str.replace(/[a-z]'s/g,''),
        percent = noCapitals.length === 0 ? 100 : (noCapitals.length/len) * 100;
    return parseFloat(percent.toFixed(2));
}
var someVar = 'AAAAA    DDSSS',
    p = capitalized(someVar);
console.log(p);

JS Fiddle演示。

参考文献:

  • JavaScript正则表达式
  • CCD_ 1
  • CCD_ 2
  • String.replace()

您可以尝试类似的

if (myString == myString.toUpperCase())
{
  alert('all upper case');
}

这将检查完整的大写字符串。如果你想检查80%,那么你需要做一些数学逻辑,对每个字符进行循环。