Sobes.tech
Middle

Най-доброто приложение в света Регистрация Възраст Пълно име Email Телефонен номер Парола Дата на раждане Изисквания Възраст - плъзгач с маркировки на 30 и 60 - В зависимост от избраното стойност се прилага отстъпка: До 30 - 5% До 60 - 10% След 60 - 22% Пълно име - кирилица, - интервал, който отделя частите на пълното име Email - маска @ Телефонен номер - +7 Парола - латиница - Не повече от 8 символа - Съдържа поне 3 главни букви - Деветият символ е специален символ Дата на раждане - формат дд.мм.гггг

sobes.tech AI

Отговор от 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}$/

Такой подход обеспечит корректный ввод данных и позволит динамически рассчитывать скидку по возрасту.