haikal/inventory/validators.py
2025-08-27 13:04:41 +03:00

17 lines
573 B
Python

from django.core.validators import RegexValidator
from django.utils.translation import gettext_lazy as _
import re
class SaudiPhoneNumberValidator(RegexValidator):
def __init__(self, *args, **kwargs):
super().__init__(
regex=r"^(\+9665|05)[0-9]{8}$",
message=_("Enter a valid Saudi phone number (05XXXXXXXX or +9665XXXXXXXX)"),
)
def __call__(self, value):
# Remove any whitespace, dashes, or other separators
cleaned_value = re.sub(r"[\s\-\(\)\.]", "", str(value))
super().__call__(cleaned_value)