diff --git a/labs/lab8/desc.json b/labs/lab8/desc.json index c5b9563..ad61d71 100644 --- a/labs/lab8/desc.json +++ b/labs/lab8/desc.json @@ -1,14 +1,21 @@ { "number": 8, - "task": "", + "task": "Создайте функцию, которая принимает одну строку в качестве аргумента и возвращает упорядоченный массив, содержащий индексы всех заглавных букв в строке.", "vars": [ [ { - "name": "", - "desc": "", + "name": "s", + "desc": "Разбираемая строка", "data": "" } + ], + [ + { + "name": "s", + "desc": "Разбираемая строка", + "data": "Мама Мыла Раму" + } ] ], - "complete": false + "complete": true } \ No newline at end of file diff --git a/labs/lab8/main.js b/labs/lab8/main.js index 466be91..c034d8c 100644 --- a/labs/lab8/main.js +++ b/labs/lab8/main.js @@ -3,5 +3,28 @@ function main(formName) { let result = document.getElementById("result"); - result.textContent = "Результат: неопределенно"; + let s = document.forms[formName].elements[0].value; + if (!(typeof s === "string")) { + result.textContent = "Ошибка: s не является строкой!"; + return; + } + + result.textContent = "Результат: " + countUpperChars(s); +} + +function countUpperChars(s) { + let result = []; + let pattern = /^[A-ZА-Я]+$/; + + Array.from(s).forEach( (elem, index) => { + if (pattern.test(elem)) { + result.push(index); + } + }); + + if (result.length == 0) { + return "заглавные буквы отсутствуют"; + } else { + return result; + } }