2011-10-19 30 views

答えて

9

あなたはtoUpperCaseを使用することができます。

if(yourString.charAt(0) === yourString.charAt(0).toUpperCase()) { 
    //Uppercase! 
} 

あなたが定期的にこれを使用するつもりなら、私は、文字列のプロトタイプに関数の中でこのような何かを、それを置くことをお勧め: (コメントに基づいて)

String.prototype.isFirstCapital = function() { 
    return this.charAt(0) === this.charAt(0).toUpperCase(); 
} 
if(yourString.isFirstCapital()) { 
    //Uppercase! 
} 

更新

文字列に文字が含まれていない場合に実際に何をしたいのか分かりませんが、単純な解決法は、そうであるかどうかを確認するためのクイックチェックを追加し、そうでない場合はfalseを返します。

String.prototype.isFirstCapital = function() { 
    return /^[a-z]/i.test(this) && this.charAt(0) === this.charAt(0).toUpperCase(); 
} 
+0

+1非常に洗練されたソリューション。 –

+0

彼は文字列の最初の文字の大文字を要求しましたが、最初の文字ではないかもしれません... – kennebec

+0

数値、@などでは機能しません:)それらのすべてに対して偽陽性です。私の答えを見てください、しかしそれは@ケンベケのメモを考慮しません。 – Lapple

1

英語のアルファベットでのみ動作します。

var ch = myStr.chatAt(0); 
if (ch >= 'a' && ch <= 'z') { 
    // small 
} else if (ch >= 'A' && ch <= 'Z') { 
    // capital 
} else { 
    // not english alphabet char 
} 
+1

文字列に対してブラケット表記インデックスはIE 7で動作しないことに注意して下を参照してください - あなたが使用する必要が 'のcharAt()'これらのブラウザで互換性のため。 –

+0

それに気づいてくれてありがとうAndy E。また、ジェームス・アードディスの答えは私のものよりはるかに優れています。 – taskinoor

0

これは、文字列の最初の文字に近づくまで再帰的に呼び出され、そうでない場合は'no letters'を返します。

function getFirstCase(string) { 
    if (string === '') return 'no letters'; 

    var firstChar = string.charAt(0); 

    /* 
    * If both lowercase and uppercase 
    * are equal, it is not a letter 
    */ 
    if (firstChar.toLowerCase() === firstChar.toUpperCase()) { 
     return getFirstCase(string.substr(1)); 
    } else { 
     return firstChar.toLowerCase() === firstChar ? 'lowercase' : 'uppercase'; 
    } 
} 

テスト:

console.log(getFirstCase('alphabet'), 
      getFirstCase('Sunshine'), 
      getFirstCase('123123'), 
      getFirstCase('@Hi'), 
      getFirstCase('\nHAHA')); 
0
var mystring = "Test string"; 
var first= ""; 
if (mystring) 
{ 
    first= mystring[1]; 
} 


if (first) 
{ 
    $('p').each(function() 
    { 
     if ($(this).text().charAt(0).toUpperCase() === $(this).text().charAt(0)) 
     { 
      alert("Uppercase"); 
     } 
    }); 
} 
0

私は驚いては誰の本に正規表現のソリューションを提供していない - それははるかに最も簡単なように思える:

function getFirstCase(s) { 
    return (/^[\d\W]*[A-Z]/).test(s) ? 'upper' : 
     (/^[\d\W]*[a-z]/).test(s) ? 'lower' : 
     'none'; 
} 

は露骨に盗みます@ラップルのテストケース:

console.log(getFirstCase('alphabet'), 
      getFirstCase('Sunshine'), 
      getFirstCase('123123'), 
      getFirstCase('@Hi'), 
      getFirstCase('\nHAHA')); 

// lower upper none upper upper 

http://jsfiddle.net/nrabinowitz/a5cQa/

関連する問題