Javascript中可能發現單詞的第一個字母是否是大寫字母?檢查單詞的第一個字母是否是大寫字母
回答
var word = "Someword";
console.log(word[0] === word[0].toUpperCase());
或
var word = "Someword";
console.log(/[A-Z]/.test(word[0]));
或
var word = "Someword";
console.log(/^[A-Z]/.test(word));
是。
var str = "Hello";
if(str[0].toUpperCase() == str[0])
{
window.alert('First character is upper case.');
}
推薦使用,因爲在Chrome中對於「È」(E with a grave)和「ζ」(非大寫zeta)等Unicode字符進行少量測試似乎可行。 –
var string1 = "this is a string";
var string2 = "This is a string";
if(string1[0] == string1[0].toUpperCase())
alert('is upper case');
else
alert('is not upper case');
if(string2[0] == string2[0].toUpperCase())
alert('is upper case');
else
alert('is not upper case');
你能做到在幾個方面:
var myWord = "Hello";
// with string functions
if (myWord.charAt(0) === myWord.charAt(0).toUpperCase()) { /* is upper */ }
// or for newer browsers that support array-style access to string characters
if (myWord[0] === myWord[0].toUpperCase()) { /* is upper */ }
// with regex - may not be appropriate for non-English uppercase
if (/^[A-Z]/.test(myWord) { /* is upper */ }
注意,陣列式訪問的字符,如myWord[0]
是的ECMAScript 5功能,並在舊的瀏覽器不支持,所以(現在)我可能會推薦.charAt()方法。
如果你需要做這個測試有很多你可以做一個小功能:
function firstLetterIsUpper(str) {
var f = str.charAt(0); // or str[0] if not supporting older browsers
return f.toUpperCase() === f;
}
if (firstLetterIsUpper(myWord)) { /* do something */ }
此頁面上的其他答案都很好,已知只包含非重音A-Z的字母串。如果你不能保證這一點(例如用戶輸入),他們可能會給出意想不到的結果:誤報爲「1940s」或「中文」等不適用的首字母縮寫,或者重音或非羅馬首字母例如「Łukasz」或「 Александра」。
function initialIsCapital(word){
return word[0] !== word[0].toLowerCase();
}
使用.charAt(0)
代替[0]
if you need IE8 support:如果最初是任何大寫字母,以及只有如果它是一個大寫字母
這個變種返回true。其中is faster varies between browsers。
這避免了與其他回答了兩個潛在的陷阱:使用[A-Z]
的正則表達式將無法匹配重音和其他類似的非AZ大寫字母,如奧蘭(斯堪的納維亞羣島)和盧卡斯(通用波蘭語名稱),包括非拉丁字母的大寫字母,如西裏爾字母或希臘字母(例如Александра)。
使用
word[0] === word[0].toUpperCase()
在某些詞的做法,將在與非字母開頭的單詞返回true,如,,123reg(公司名稱),像縮寫2mrw,或一些非洲語言,如!xūún或ǂǐ-sì。它還會將字母表中沒有大寫字母的任何輸入視爲大寫字母(例如,中文)。
由於這個任意輸入安全的方法也很簡單,並沒有比其它的可讀性,它可能更好地使用這個,即使你不預期這些例外。
下面是一個簡單的測試:
function a(word){
return word[0] !== word[0].toLowerCase();
}
function b(word){
return word[0] === word[0].toUpperCase();
}
function c(word){
return /^[A-Z]/.test(word);
}
function test(word, answer){
console.log('Should be '+answer+':', a(word), b(word), c(word), '-------', word);
}
test('Łukasz', true); // regex test fails, returns false
test('Александра', true); // regex test fails, returns false
test('1940s', false); // .toUpperCase() test fails, returns true
test('中文', false); // .toUpperCase() test fails, returns true
test('ß', false); // All pass on German "sharp S" that has no uppercase
test('Z̢̜̘͇̹̭a͎͚͔͕̩̬̭͈͞l̩̱̼̤̣g̲̪̱̼̘̜͟ợ̮̱͎̗̕ͅͅ', true); // All pass. Phew, Zalgo not awakened
let word = 'Someword';
console.log(word.match(new RegExp(/^[A-Z]/)) !== null);
這可能會回答這個問題,但也請提供一個簡短說明,代碼的作用以及爲什麼它解決了最初的問題。 – user1438038
僅供英語字母:
'A' => 65
'a' => 97
意義,[97 65之間,每隔數)大寫字母:
function startsWithCapitalLetter(word) {
return word.charCodeAt(0) >= 65 && word.charCodeAt(0) < 97;
}
- 1. 檢查單詞是否大寫,只更改第一個字母
- 2. 檢查字符串的第一個字母是否大寫
- 3. Swift大寫字母中每個單詞的第一個字母
- 4. 檢查單詞的第一個字母是否爲元音
- 5. 檢查char是否是大寫字母
- 6. 大寫字母的第一個字母
- 7. 刪除單詞如果第一個字母是大寫
- 8. 大寫每個大寫單詞的第一個字母
- 9. preg_match檢查字符串中每個單詞的第一個字母的大寫
- 10. 將某個單詞的第一個字母更改爲大寫字母
- 11. 將每個單詞的第一個字母轉換爲大寫字母JS
- 12. 第一個字母大寫
- 13. 大寫字母的第一個單詞(或者可選的所有單詞)的大寫字母2+
- 14. 如何匹配的第一個字母是大寫/大寫字母在PHP?
- 15. 如何使一個單詞的第一個字母大寫?
- 16. 大寫字母中的三個字母單詞的第一個和最後一個字母
- 17. 函數檢查字符串的第一個字符是否是一個字母
- 18. 訪問,如果第一個字母不是大寫字母,則檢測姓氏
- 19. 是否可以用第一個大寫字母來重寫URL?
- 20. 檢查兩個或多個連續的字母是否大寫
- 21. 如何檢查一個字符是否是某個字母的字母?
- 22. SQL - 大寫每個單詞的第一個字母
- 23. 大寫每個單詞的第一個字母斯卡拉
- 24. 大寫每個單詞的第一個字母
- 25. 如何檢查第一個字符是否爲字母
- 26. Javascript首字母大寫字母的每個單詞的第一個字母只有當lengh> 2
- 27. 使用SED的大寫第一個字母的單詞
- 28. 任務是將每個單詞的第一個字母變成大寫(Javascript)
- 29. 檢查單詞是否包含字母數字
- 30. 正則表達式第一個單詞的大寫字母
在這裏檢查http://stackoverflow.com/questions/1027224/how-can-i-test-if-a-letter-in-a-string-is-uppercase-or-lowercase-using- javascrip – Cyclonecode
編輯:是的。試試'/^[AZ] /。test(短語)'([here](http://jsfiddle.net/uAwQL/1/)) –
@DavidRodrigues潛在陷阱陷阱,'[AZ]'不匹配重音或非ASCII大寫字母,看到新的答案http://stackoverflow.com/a/39292247/568458 – user568458