Back to questions
Middle
7
Лучшее в мире приложение Регистрация Возраст ФИО Email Номер телефона Пароль Дата рождения Требования Возраст - Бегунок с отсечками 30 и 60 - В зависимости от выбранного значения формируется скидка: До 30 - 5% до 60 - 10% после 60 - 22% ФИО - кириллица, - пробел отделяющий части ФИО Email - маска @ Номер телефона - +7 Пароль - Латиница - Не более 8 символов - Содержит как минимум 3 заглавные буквы - Девятый символ - спецсимвол Дата рождения - Формат дд.мм.гггг
Companies where asked
тим форс
Answer from AI
sobes.tech AI
Для реализации регистрации с указанными требованиями можно использовать валидацию на стороне фронтенда и бэкенда.
Возраст:
- Использовать бегунок (slider) с отметками 30 и 60.
- В зависимости от выбранного значения вычислять скидку:
- До 30 лет — 5%
- До 60 лет — 10%
- Старше 60 — 22%
ФИО:
- Проверять, что введён текст на кириллице.
- Части ФИО разделены пробелом.
- Регулярное выражение для проверки:
/^[А-ЯЁ][а-яё]+(\s[А-ЯЁ][а-яё]+){1,2}$/
Email:
- Проверять наличие символа
@и базовую структуру email. - Пример регулярного выражения:
/^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,}$/
Номер телефона:
- Проверять, что номер начинается с
+7. - Пример:
/^\+7\d{10}$/
Пароль:
- Латиница, не более 8 символов.
- Минимум 3 заглавные буквы.
- Девятый символ — спецсимвол (если длина >= 9).
- Пример проверки:
import re
password = "AbCDefGh!"
if len(password) <= 8:
print("Пароль слишком короткий")
else:
uppercase_count = len(re.findall(r'[A-Z]', password))
if uppercase_count < 3:
print("Меньше 3 заглавных букв")
if len(password) >= 9 and not re.match(r'.{8}[!@#$%^&*]', password):
print("Девятый символ не спецсимвол")
Дата рождения:
- Формат
дд.мм.гггг. - Проверка регулярным выражением:
/^(0[1-9]|[12][0-9]|3[01])\.(0[1-9]|1[0-2])\.\d{4}$/
Такой подход обеспечит корректный ввод данных и позволит динамически рассчитывать скидку по возрасту.