检查一个字符串是否以小写字母开头

17

如何使用“if”语句查找以小写字母开头的字符串?


可能是重复的问题:JavaScript - 检查字符串中是否有任何小写字母 - Preet Sangha
3个回答

31

如果您想覆盖除a-z以外的更多字符,您可以使用类似以下的语法:

var first = string.charAt(0);
if (first === first.toLowerCase() && first !== first.toUpperCase())
{
  // first character is a lowercase letter
}

这两种检查都是必要的,因为存在一些字符(如数字)既不是大写也不是小写。例如:

"1" === "1".toLowerCase() //=> true
"1" === "1".toLowerCase() && "1" !== "1".toUpperCase() //=> true && false => false
"é" === "é".toLowerCase() && "é" !== "é".toUpperCase() //=> true && true => true

2
你需要使用 toLowerCase 检查的情况是什么?例如,何时 != toUpperCase 不足以满足要求? - T.J. Crowder
4
我强烈建议您使用 ===! == 来避免类型转换错误。这是一个难养成的习惯,但我认为非常有益。 - ChaosPandion
@T.J. 我不确定是否存在一个字符不等同于 character.toUpperCase(),所以我使用了两个条件,但你说得很对。 - Daniel Vandersluis
1
在这个特定的例子中,我没有看到潜在的类型强制问题,因为charAttoLowerCasetoUpperCase方法始终保证返回字符串值... - Christian C. Salvadó
@ChaosPandion:toUpperCasetoLowerCase返回字符串,不存在类型问题的机会。在某些情况下使用===而不是==是有益的,而在其他情况下则不是万能药。 - T.J. Crowder
显示剩余6条评论

5
似乎如果一个字符不等于其大写状态,它就是小写。
var first = string.charAt(0);
if(first!=first.toUpperCase()){
    first character is lower case
}

-1

这似乎是正则表达式的一个合适应用。

var match = myString.match(/^[a-z]/);

if (match != null) {
    // good match
}

2
这是一个非常以英语为中心的问题观点。 "à" 不是小写吗? - T.J. Crowder
你说得对,我认为这对那种情况会起作用。但它不适合国际使用。我投了丹尼尔的答案,因为它比我的更有用。 - lincolnk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接