在web应用程序中,如何使用JavaScript确定给定字符串中的第一个字母是大写还是小写?

5个答案5

重置为默认值
9

你可以使用将字符串转换成大写以下为:

if(yourString.charAt(0)===你的String.carAt(O).toUpperCase()){//大写!}

如果你打算定期使用它,我建议把它放在String原型的函数中,如下所示:

String.prototype.isFirstCapital=函数(){return this.charAt(0)===this.charAt(0).toUpperCase();}if(yourString.isFirstCapital()){//大写!}

更新(基于评论)

我不知道在字符串不包含字母的情况下,您到底想做什么,但一个简单的解决方案是添加一个快速检查以查看它是否包含字母,如果没有,则返回false:

String.prototype.isFirsCapital=函数(){return/^[a-z]/i.test(this)&&this.charAt(0)==this.charAt(0).toUpperCase();}
2
  • 他确实要求将字符串中的第一个字母大写,这可能不是第一个字符。。。 2011年10月19日16:14
  • 不适用于数字、@等:)所有数字都为假阳性。看我的答案,但它没有考虑到@kennebec的注释。
    – 褶皱
    2011年10月19日16:16
1

这只适用于英语字母表。

var ch=myStr.chatAt(0);如果(ch>=“a”&&ch<=“z”){//小的}else if(ch>=“A”&&ch<=“Z”){//资本}其他{//非英语字母字符}
2
  • 1
    请注意,字符串的括号表示法索引在IE7及更低版本中不起作用,您需要使用字符()以便在这些浏览器中兼容。
    – 安迪·E
    2011年10月19日16:08
  • 感谢Andy E注意到这一点。而且詹姆斯·阿勒代斯的回答也比我的好得多。 2011年10月19日16:09
0
var mystring=“测试字符串”;var first=“”;if(神秘){first=mystring[1];}if(第一个){$('p').each(函数(){if($(this).text().charAt(0).toUpperCase()===${警报(“大写”);}});}
0

这将被递归调用,直到接近字符串中的第一个字母,否则返回'无字母'

函数getFirstCase(字符串){if(string==“”)返回“无字母”;var firstChar=字符串.charAt(0);/**如果同时使用小写和大写*是相等的,它不是一个字母*/if(firstChar.toLowerCase()===firstChar.toUpperCase(()){return getFirstCase(string.substr(1));}其他{return firstChar.toLowerCase()===firstChar?'小写':'大写';}}

测试:

console.log(getFirstCase('alphabet'),getFirstCase(“阳光”),获取第一个案例('123123'),getFirstCase(“@Hi”),getFirstCase('\nHAHA'));
0

我很惊讶没有人提供regex解决方案-这似乎是迄今为止最简单的:

函数getFirstCase{返回(/^[\d\W]*[A-Z]/)个测试?'上部':(/^[\d\W]*[a-z]/)。测试?'下部':“无”;}

公然偷窃@Lapple的测试用例:

console.log(getFirstCase('alphabet'),getFirstCase(“阳光”),获取第一个案例('123123'),getFirstCase(“@Hi”),getFirstCase('\nHAHA'));//下-上无上-上

请参见http://jsfiddle.net/nrabinowitz/a5cQa/

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策

不是你想要的答案吗?浏览标记的其他问题问你自己的问题