-3

文字列内のすべての文字が大文字になっているかどうかを確認するにはどうすればよいですか?

お気に入り:

var someVar = 'AAAAA DDSSS asssd';

それとも、文字の 80% 以上が大文字ですか?

4

2 に答える 2

4

私はお勧めします:

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 フィドルのデモ

または、固定精度が必要な場合:

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 フィドルのデモ

そして、不要な計算の実行を避けるための簡単なチェックを使用して、もう少し便利です (空白と小文字も削除するという点で)。

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 フィドルのデモ

参考文献:

于 2013-07-01T13:41:34.703 に答える
1

このようなものを試すことができます

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

これにより、完全な大文字の文字列がチェックされます。80% のようにチェックしたい場合は、すべての文字をループして数学ロジックを実行する必要があります。

于 2013-07-01T13:37:03.317 に答える