JavaScript - 检查字符串中的任何小写字母

p.c*_*ell 32 javascript regex

考虑一个需要检查给定字符串是否全部为大写字母的JavaScript方法.输入字符串是人的名字.

当前的算法是检查任何小写字母.

var check1 = "Jack Spratt";    
var check2 = "BARBARA FOO-BAR"; 
var check3 = "JASON D'WIDGET";  

var isUpper1 = HasLowercaseCharacters(check1);  
var isUpper2 = HasLowercaseCharacters(check2);
var isUpper3 = HasLowercaseCharacters(check3);

function HasLowercaseCharacters(string input)
{
    //pattern for finding whether any lowercase alpha characters exist
    var allLowercase; 

    return allLowercase.test(input);
}
Run Code Online (Sandbox Code Playgroud)

正则表达式是最好的方式去这里?

您将使用什么模式来确定字符串是否包含任何小写字母字符?

kar*_*m79 96

function hasLowerCase(str) {
    return str.toUpperCase() != str;
}

alert(hasLowerCase("HeLLO"));
alert(hasLowerCase("HELLO"));
Run Code Online (Sandbox Code Playgroud)

试试吧:http://jsfiddle.net/B2bvY/3/

  • 如果字符串是全数字或非字母,它将失败 (5认同)
  • 这确实应该是公认的答案。先生,非常聪明。 (3认同)
  • @DipenduPaul不,函数不会失败.它将返回`false`,这是正确的,因为全数字字符串没有任何小写字符. (3认同)
  • 为什么是 `!=` 而不是类型安全的 `!==`? (3认同)

ari*_*iel 35

也:

function hasLowerCase(str) {
    return (/[a-z]/.test(str));
}
Run Code Online (Sandbox Code Playgroud)

  • 这是一个以英文为中心的小写字母的视图."à"不是小写吗?在这个答案被接受之后我就提到了这个问题因为[这个更新的问题](http://stackoverflow.com/questions/3816905)引用了这个问题.下面的`!= toUpperCase`答案更具包容性. (24认同)
  • 这不适用于小写,您还需要检查“未定义”。` function hasLowerCase(str) { 返回 str ? (/[az]/.test(str)) : 假;}` (2认同)

Joh*_*arZ 5

function hasLowerCase(str) {
    return str.toUpperCase() != str;
}
Run Code Online (Sandbox Code Playgroud)

要么

function hasLowerCase(str) {
    for(x=0;x<str.length;x++)
        if(str.charAt(x) >= 'a' && str.charAt(x) <= 'z')
            return true;
    return false;
}
Run Code Online (Sandbox Code Playgroud)