Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про IOS: email, validation, uitextfield

Как валидировать email, вводимый пользователем, в текстовом поле?

Вопрос проверяет умение валидировать пользовательский ввод и учитывать UX-аспекты.

Короткий ответ

Email обычно валидируют с помощью регулярного выражения или NSDataDetector. Проверка не должна быть слишком строгой. Важно валидировать ввод постепенно, а не только при отправке формы. Ошибки нужно показывать пользователю аккуратно. Серверная валидация все равно остается обязательной.

Длинный ответ

Валидация email — это баланс между технической корректностью и удобством пользователя.

Что значит «валидный email»

Формально стандарт email очень сложный, но на практике используется упрощенная проверка.

Цель:

  • отсеять явно некорректный ввод;

  • не блокировать редкие, но допустимые адреса.

Подходы к валидации

Перед выбором подхода важно решить, когда выполняется проверка.

1. Регулярное выражение

Самый распространенный вариант.

Пример:

let pattern = "^[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$"
let isValid = NSPredicate(format: "SELF MATCHES %@", pattern).evaluate(with: email)

Плюсы:

  1. Простота.

  2. Контроль формата.

Минусы:

  • сложно покрыть все валидные кейсы.

2. NSDataDetector

Более «системный» способ.

Пример:

let detector = try? NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue)
let matches = detector?.matches(in: email, options: [], range: NSRange(location: 0, length: email.count))
let isValid = matches?.first?.url?.scheme == "mailto"

UX-аспекты

Важно учитывать:

  1. Не показывать ошибку при каждом символе.

  2. Подсвечивать ошибку после окончания ввода.

  3. Давать понятное сообщение, а не «invalid input».

Где должна быть валидация

  1. На клиенте — для UX.

  2. На сервере — для безопасности и целостности данных.

Практический вывод

Для iOS достаточно легкой проверки через regex или NSDataDetector. Не стоит делать валидацию слишком строгой — сервер все равно должен быть финальной точкой проверки.

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • IOS

    IOS

Ключевые слова

#email

#validation

#uitextfield

Подпишись на iOS Developer в телеграм

  • Аватар

    iOS Guru

    Roman Isakov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.