как сделать чтобы в prompt ввести текст который написан с верху в случии некоректности выдал ошибку?

Рейтинг: 0Ответов: 1Опубликовано: 05.07.2023

Как сделать, чтобы в prompt ввести текст, который написан сверху, а в случае некорректности выдал ошибку?

Ответы

▲ 0Принят

Вариант с конструкцией do {} while()

const a = 'Петя'; // Проверочное слово
let check; // Сюда подставлять будем для сверки.

do {
  check = prompt('Введите слово "'+a+'"'); // Выдаём окно ввода и записываем результат в переменную
} while(check !== a); // Проверяем именно чтобы введённое слово было не равно проверочному
// т.к. `true` зацикливает условие, в нашем случае совпадения будет равно `false`, что разорвёт цикл.
// Последующий код не выполнится, пока не будет выполнено это условие

alert('Всё правильно');


Вариант с while(true).
Данный вариант меньше и более логичным.

const a = 'Петя'; // Проверочное слово

while(true) // Цикл бесконечен..
  if(prompt('Введите слово "'+a+'"') === a) break; // ..но он прервётся при совпадении и выполнится код ниже.

alert('Всё правильно');


Чтобы рандомно выводился текст, добавьте массив с нужными "ошибками" и выводите его рандомно:

const a = 'Петя';
let isError = false; // Требуется для того, чтобы первый раз вывести нормальный текст, а потом выводить ошибки
const errorsMsg = ['Неправильно', 'Неа, не верно', 'Миша, всё @#$%^*, давай по новой..', 'Давай ещё раз', 'Может ты забыл слово? Напиши "'+a+'"'];

while(true) {
  if(prompt(!isError ? 'Введите слово "'+a+'"' : errorsMsg[Math.floor(Math.random() * errorsMsg.length)]) === a)
    break;
  else
    isError = true;
}

alert('Всё правильно 👍');