Ответ 1
и
function hasLowerCase(str) {
return (/[a-z]/.test(str));
}
Рассмотрим метод 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);
}
Является ли регулярное выражение лучшим способом для перехода сюда?
Какой шаблон вы использовали бы, чтобы определить, имеет ли строка какие-либо строчные альфа-символы?
и
function hasLowerCase(str) {
return (/[a-z]/.test(str));
}
function hasLowerCase(str) {
return str.toUpperCase() != str;
}
alert(hasLowerCase("HeLLO"));
alert(hasLowerCase("HELLO"));
Попробуйте: http://jsfiddle.net/B2bvY/3/
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;
}
Другое решение только соответствует регулярному выражению для a-z
function nameHere(str) {
return str.match(/[a-z]/);
}
или
function nameHere(str) {
return /[a-z]/g.test(str);
}
Но в каком контексте вы используете script? Вы просто показываете пользовательский ввод, например prompt()? Вы можете просто заставить желаемый результат.
var inpt = prompt("Enter your name: ", "");
var uc = inpt.charAt(0);
var lc = inpt.slice(1);
var str1 = uc.toUpperCase();
var str2 = lc.toLowerCase();
var str = str1 + str2;
document.write(str);
В зависимости от вашего использования это может быть не тот, который нужно выбрать... однако, если все, что вы пытаетесь сделать, это отобразить пользовательский ввод, этот простой способ может сработать для вас.