Sobes.tech
Middle

Nejlepší aplikace na světě Registrace Věk Celé jméno Email Telefonní číslo Heslo Datum narození Požadavky Věk - Posuvník s označeními 30 a 60 - Podle zvolené hodnoty se uplatní sleva: Do 30 - 5% Do 60 - 10% Po 60 - 22% Celé jméno - cyrilice, - mezera oddělující části celého jména Email - maska @ Telefonní číslo - +7 Heslo - latinka - Nejvíce 8 znaků - Obsahuje alespoň 3 velká písmena - Devátý znak je speciální znak Datum narození - Formát dd.mm.rrrr

sobes.tech AI

Odpověď od 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}$/

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