在 Web 应用程序中,如何使用 JavaScript 确定给定字符串中的第一个字母是大写还是小写?
问问题
1663 次
5 回答
9
您可以使用toUpperCase
:
if(yourString.charAt(0) === yourString.charAt(0).toUpperCase()) {
//Uppercase!
}
如果您要定期使用它,我建议将它放在 String 原型上的一个函数中,如下所示:
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();
}
于 2011-10-19T16:07:17.093 回答
1
这仅适用于英文字母。
var ch = myStr.chatAt(0);
if (ch >= 'a' && ch <= 'z') {
// small
} else if (ch >= 'A' && ch <= 'Z') {
// capital
} else {
// not english alphabet char
}
于 2011-10-19T16:06:26.543 回答
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'));
于 2011-10-19T16:08:47.370 回答
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");
}
});
}
于 2011-10-19T16:18:45.800 回答
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
于 2011-10-19T17:15:30.760 回答