← Все вопросы

Как проверить email или телефон простой регуляркой?

Задан 17 месяцев назад691 просмотров3 ответа
10

Нужна базовая валидация: пользователь ввёл email и телефон, хочу хотя бы грубо проверить, что это похоже на правду. Какой паттерн взять для новичка?

3 ответа

17
✓ Принятый ответ — помог автору

Для учебных целей хватает простого паттерна с re.fullmatch (он требует, чтобы совпала ВСЯ строка):

import re

email = '[email protected]'
if re.fullmatch(r'[\w.-]+@[\w-]+\.[a-zA-Z]{2,}', email):
    print('похоже на email')

phone = '+79991234567'
if re.fullmatch(r'\+?\d{10,15}', phone):
    print('похоже на телефон')

Важно понимать: на 100% провалидировать email регуляркой нереально (стандарт жуткий). В реальном проекте проверку email обычно делают отправкой письма с подтверждением, а не идеальным паттерном.

Светлана Петровна для телефона лучше сначала убрать пробелы/скобки/дефисы через re.sub, а потом матчить · 17 месяцев назад
8

Для телефона удобно сначала почистить: digits = re.sub(r'\D', '', phone) — оставит только цифры, дальше проверяй длину.

-2

проверяй просто наличие '@' в строке и всё

Игорь Попов '@@@' тоже пройдёт, так себе проверка · 17 месяцев назад

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект