RegexValidator в Django Models неправильно проверяет электронную почту
Я делаю форму django с полем email и использую RegexValidator и хочу определенный формат email, но кажется, что он не проверяет поле правильно
email = models.EmailField(
unique=True,
validators=[
RegexValidator(
regex=r"^[2][2][a-zA-Z]{3}\d{3}@[nith.ac.in]*",
message=
"Only freshers with college email addresses are authorised.")
],
)
Когда я ввожу email, заканчивающийся на @nith.ac.in или @nith.acin, оба принимаются, а @nith.acin не должен приниматься... есть решение?
[nith.ac.in]
разбирает не буквальный текст, он разбирает любой символ в группе te, что означает, что он может заканчиваться последовательностью n
s, i
s, ni
s и т.д.
Ваш regex должен выглядеть так:
email = models.EmailField(
unique=True,
validators=[
RegexValidator(
regex=r'^[2][2][a-zA-Z]{3}\d{3}@nith[.]ac[.]in$',
message='Only freshers with college email addresses are authorised.',
)
],
)