2

ユーザーがすべて大文字で<textarea>. 当然のことながら、すべて大文字の定義については議論の余地がありますが、私が目指しているのは次のとおりです。

  • あなたはそれを行うことはできません。それはスマートではありません。それは不快なので、明らかに私が蛇行しようとしているものです。
  • 私はこの学校が好きです。1 文字の「すべて大文字」の単語は英語の一部であるため、許容されます。
  • つまり、さあ!ばかげてる!これは受け入れられるべきですか?リッチ テキストをサポートしていないテキスト フィールドでは、ユーザーは強調を表現できる必要があります。これは受け入れられるべきだと思います。

誰にも提案はありますか?正規表現が整っていると思います。

4

3 に答える 3

6

文字列に大文字が含まれ、小文字が含まれていないことを確認する Javascript 関数:

function allCaps(word) {
    var containsUpper = /[A-Z]/.test(word);
    var containsLower = /[a-z]/.test(word);

    return containsUpper && !containsLower;
}
于 2013-05-26T06:45:47.233 に答える
2

大文字の比率を取得することをお勧めします。ここに方法があります:

function getCapsRatio(val) {
    // Get the number of uppercase letters
    var up = val.match(/[A-Z]/g).length,

    // Get the number of letters (no space)
        fullLetters = val.match(/[^\s+]/g).length;

    // So the ratio of uppercase letters compared to downcase is...
    return (up * 100) / fullLetters;
}

したがって、この関数を次のように使用します。

var ratio = getCapsRatio(value);
if (ratio > 50) {
    // 50% of uppercase letters? this guy is all caps!
}

これは研究する必要がありますが、50% は男がすべて大文字であると考えるのに適した比率だと思います。

于 2013-05-26T07:59:47.123 に答える