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