/
TimurIsm
/
OpenEyes
Обзор
Документация
Войти
/
TimurIsm
/
OpenEyes
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
front/src/components/ValidationAnswer.jsx
42 строки
2 KB
IsmTimur
Initial commit: added backend (Express) and frontend (React Vite)
19 июн 2025, 18:32
19 июн 2025, 18:32
6cf6155
Код
Авторство
О чём код?
export const validateAnswer = (userAnswer, correctAnswer, dataType) => { if (dataType === 'input' && !userAnswer.trim()) { return { isValid: false, message: 'Введите значение в поле для ввода!' }; } if (dataType === 'select' && !userAnswer) { return { isValid: false, message: 'Выберите вариант ответа!' }; } if (dataType === 'input') { const validationRules = [ { pattern: /^[1-9]\d?$/, message: 'Ответ должен быть числом от 1 до 99!', }, { pattern: /^[^a-zA-Z0-9]$/, message: 'Ответ должен быть одним символом!', }, { pattern: /^[A-Z]$/, message: 'Ответ должен быть одной латинской буквой!', }, { pattern: /^[A-Z]{3,6}$/, message: 'Ответ должен быть словом от 3 до 6 латинских букв!', }, { pattern: /^[A-Za-z\s]+$/, message: 'Ответ должен быть словом или предложением из латинских букв!', }, ]; for (const rule of validationRules) { if (rule.pattern.test(correctAnswer) && !rule.pattern.test(userAnswer)) { return { isValid: false, message: rule.message }; } } } return { isValid: true }; };