2014-05-23 29 views
0

關於可能的重複問題的說明Javascript:如何確定一串文本中的哪些字符是大寫字母?

該問題的接受答案不起作用。

它將空格和其他非字母字符錯誤地報告爲toUpperCase == true。 :-(

但是我現在看到其他答案中的一個確實提供了一個成功的解決方案關於此前一個問題的正確答案來自ciembor我將留下這個問題,因爲這個來自Barmar的接受答案正確地解決了。問題

如何確定哪些字符在文本字符串是大寫字母

我第一次嘗試用.toUpperCase測試,但非字母字符也返回true:

var text="Romeo & Juliet"; 

var characters=text.split(''); 

// and test with 

characters[i]===characters[i].toUpperCase() // but spaces and "&" also test as true 

接下來我雖然使用正則表達式和與A-Z測試,但非英文字符集可能有超出此範圍的大寫字母。

任何人都有辦法確定一個字符是否是大寫字母?

+0

嗯,有[這個答案](http://stackoverflow.com/a/4052294/283366),但是我不認爲JavaScript的(ES5)支持Unicode表達式。請參閱http://stackoverflow.com/questions/280712/javascript-unicode-regexes – Phil

+0

僅供參考,您不需要拆分字符串來訪問每個字符。字符串支持數組訪問 – Phil

+0

@ Se0ng11。感謝這個問題的參考。該問題的接受答案未能正確測試空格,&符號等。但我現在看到,其他答案之一確實提供了成功的解決方案。我會留下這個問題,因爲Barmar接受的答案正確地解決了這個問題。再次...謝謝! – markE

回答

4

試試這個:

function isUpperCase(c) { 
    return c == c.toUpperCase() && c != c.toLowerCase(); 
} 
+0

當然 - 消除!= c.toLowerCase的誤報。謝謝...這是我需要的。 – markE

相關問題