From cb7ffc61f97a315b3c7920a801ccfb4c0a0eef3a Mon Sep 17 00:00:00 2001 From: Krio Date: Sat, 11 Sep 2021 13:32:06 +0700 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=208?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- labs/lab8/desc.json | 15 +++++++++++---- labs/lab8/main.js | 25 ++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 5 deletions(-) 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; + } }