antaliadom-team / backend

Бэкэнд проекта АнталияДом
http://antalyadom.telfia.com/api/docs/
0 stars 0 forks source link

Переписать валидатор телефонного номера с использованием регэкспов, будет короче и проще #44

Closed spaut33 closed 1 year ago

spaut33 commented 1 year ago

Регэксп для валидации: ^+?[0-9]{10,13}$ Пропускает с + и без + телефоны 10-13 цифр длиной без пробелов и других знаков. С фронта в json должен прийти именно такой номер.

# validators.py
import re

PHONE_REGEX = re.compile(r'^\+?[0-9]{10,13}$')

def validate_phone_number(value):
    """Validates phone number"""
    if not PHONE_REGEX.match(value):
        raise ValueError(f'Телефон {value} должен быть в формате +79876543210')
    return value

А может https://django-phonenumber-field.readthedocs.io/en/latest/ ?

spaut33 commented 1 year ago

Вот такой регэксп пройдет: match = re.fullmatch(pattern, re.sub(r'\s|\(|\)|-', '', number))