2011-10-19 52 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

不適用於數字,@等等:)對所有這些字符都是錯誤的。看到我的回答,但它沒有考慮@ kennebec的筆記。 – 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注意到這一點。 James Allardice的答案也比我的好得多。 – 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'; 
} 

大搖大擺偷@ Lapple的測試案例:

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

// lower upper none upper upper 

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

相關問題