2012-12-06 34 views
3

可能重複:
Check if first letter of word is a capital letter找到字符串的第一個字母是大寫還是不

我想寫在我傳遞字符串作爲自變量的函數。然後我想知道這個字符串的第一個字母是否大寫。如果是大寫,則返回true,否則返回false。我怎樣才能在JavaScript中實現這一點?任何簡單的演示,我會稍後根據我的需要進行修改。

+2

那麼你嘗試過什麼? – Sirko

+0

您是否要求檢查第一個*字符*是否是一個字母並且是大寫字母,還是隻是字符串的第一個字母是大寫?這是兩回事。鑑於你的問題,下面的字符串應該返回true'「... 123Abc」' –

回答

4

您可以使用String.charCodeAt()。這個函數返回一個字符的unicode值。大寫字母與小寫字母有不同的值。

檢查文檔: http://dochub.io/#javascript/string.charcodeat

function isFirstLetterCapital(string) { 
    return string.charCodeAt(0) === string.toUpperCase().charCodeAt(0); 
} 

編輯:

的charAt實際上要快 - http://jsperf.com/string-operations-order。 謝謝Cerbrus指出了這一點。

function isFirstLetterCapital(string) { 
    return string.charAt(0) === string.charAt(0).toUpperCase(); 
} 
+1

使用'string.charAt(0).toUpperCase();',[這是打火機](http://jsperf.com/string-operations-order)。另外,爲什麼'charCodeAt'而不是'charAt'? – Cerbrus

+1

但你不能大寫一個Unicode值;) – piatek

+0

偉大的東西。 charCodeAt是我想到的第一件事。 – piatek

4
var myString = "Whatever you want to test" 
console.log(myString[0] == myString[0].toUpperCase()); 
//Returns true 

myString = "whatever you want to test" 
console.log(myString[0] == myString[0].toUpperCase()); 
//Returns false 

myString[0]不起作用在(某處左右)IE7/IE8和更低,使用myString.charAt(0)如果你需要的腳本是與瀏覽器兼容。

+1

字符串的「數組語法」不適用於IE7或更低版​​本。我對嗎 ? – Magus

+0

可能是,我會相應修改。編輯:是的,沒錯。 – Cerbrus

+0

IE 8及更低版本有這個問題。 –

1
function isFirstLetterUpperCase(string) { 
    var firstLetter = string.charAt(0); 
    return firstLetter == firstLetter.toUpperCase(); 
} 
3
if(yourString.match(/^[A-Z]/)) ... 
相關問題