1

与えられたテキストの文字列

var string1 = 'IAmNotFoo';

大文字だけをどのように抽出しますか?

'IANF'

以下のリンクごとにいくつかの方法があります。

function isUpperCase1(aCharacter) {    
    if ( ch == ch.toUpperCase() ) {
        return true;
    }
    return false;
}

function isUpperCase2( aCharacter ) {    
    return ( aCharacter >= 'A' ) && ( aCharacter <= 'Z' );
}

var string1 = 'IAmNotFoo',
    string2 = '',
    i = 0,
    ch = '';

while ( i <= string1.length ) {
    ch = string1.charAt( i );
    if (!isNaN( ch * 1 ) ) {
        alert('character is numeric'); 
    }
    else if ( isUpperCase2() ) { // or isUpperCase1
        string2 += ch;
    }
    i++;
}

または単に(以下のコメントごとに):

var upper = str.replace(/[^A-Z]/g, '');

SO関連

文字列内の大文字の検索

JavaScriptを使用して、文字列内の文字が大文字か小文字かをテストするにはどうすればよいですか?

4

2 に答える 2

1

私は数値を扱うのが好きなので、整数に変換してASCII範囲をチェックすることを好みます。このチャートはwww.ascii-code.comで見ることができます。

すべての大文字には、対応する小文字とは別のASCIIコードがあります。

このようなことをする

String str = "IAmNoFoo";
returnCaps(str);

Public static String returnCaps(String, str)
{
    for (int i = 0; i < str.length; i++)
        {
            int letter = str.convertToInt(charAt(i));
            if (letter >= 65 || letter <= 90)
              return str.substring.charAt(i);
            else
               return "No Capital Letters Found"
        }
    }

ループチェックをi<=str.lengthに設定する必要がある場合があります

これにより、文字列の各インデックスの文字が大文字であるかどうかが確認されます。数学的に考えるのが一番簡単だと思います。

少し調整するだけで、これを非常に簡単に再帰的な方法にすることができます。

于 2012-08-08T22:10:59.753 に答える
1

正規表現の方法は、大きなループとは対照的に、単一のステップであるため、はるかに単純で最も効率的です。

于 2012-08-08T22:13:03.173 に答える