Sobes.tech
Middle

De beste app ter wereld Registratie Leeftijd Volledige naam E-mail Telefoonnummer Wachtwoord Geboortedatum Vereisten Leeftijd - Schuifregelaar met markeringen op 30 en 60 - Afhankelijk van de geselecteerde waarde wordt een korting toegepast: Tot 30 - 5% Tot 60 - 10% Na 60 - 22% Volledige naam - cyrillisch, - spatie die de delen van de volledige naam scheidt E-mail - @-masker Telefoonnummer - +7 Wachtwoord - Latijns - Niet meer dan 8 tekens - Bevat minimaal 3 hoofdletters - Het negende teken is een speciaal teken Geboortedatum - Formaat dd.mm.jjjj

sobes.tech AI

Antwoord van 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}$/

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