JavaScript - проверка любых строчных букв в строке

matches пытается сопоставить выражение со всей строкой и неявно добавить ^ в начале и $ в конце вашего шаблона, то есть не будет искать подстроку. Следовательно, выход этого кода:

public static void main(String[] args) throws ParseException {
    Pattern p = Pattern.compile("\\d\\d\\d");
    Matcher m = p.matcher("a123b");
    System.out.println(m.find());
    System.out.println(m.matches());

    p = Pattern.compile("^\\d\\d\\d$");
    m = p.matcher("123");
    System.out.println(m.find());
    System.out.println(m.matches());
}

/* output:
true
false
true
true
*/

123 является подстрокой a123b, поэтому метод find() выводит true. matches() только «видит» a123b, который не совпадает с 123 и, следовательно, выводит false.

29
задан p.campbell 14 May 2010 в 14:38
поделиться

3 ответа

также:

function hasLowerCase(str) {
    return (/[a-z]/.test(str));
}
35
ответ дан 27 November 2019 в 19:42
поделиться
function hasLowerCase(str) {
    return str.toUpperCase() != str;
}

или

function hasLowerCase(str) {
    for(x=0;x<str.length;x++)
        if(str.charAt(x) >= 'a' && str.charAt(x) <= 'z')
            return true;
    return false;
}
5
ответ дан John ClearZ 14 May 2010 в 14:38
поделиться
function hasLowerCase(str) {
    return str.toUpperCase() != str;
}

alert(hasLowerCase("HeLLO"));
alert(hasLowerCase("HELLO"));

Попробуйте: http://jsfiddle.net/B2bvY/3/

96
ответ дан 27 November 2019 в 19:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: