默认正则表达式 django 用于验证电子邮件
Default regex django uses to validate email
最近,我开始玩 Django 并创建了一个用于用户注册的自定义表单。在那种创建电子邮件字段的表单中,我使用类似
的东西
email = forms.EmailField()
我观察到 a@a.a 这样的地址被表单认为是无效的。当然,这是一个无意义的电子邮件地址。尽管如此,我想知道 Django 是如何检查有效性的。
我在网上找到了一些讨论如何检查电子邮件地址有效性的主题,但它们都提供了一些自定义方法。找不到关于 Django 默认验证器的内容。
他们在 docs 提交的电子邮件中指定
Uses EmailValidator to validate that the given value is a valid email address, using a moderately complex regular expression.
不过这不是很具体所以我决定在这里问一下。
如果您想检查验证,请使用像这样的干净函数:
from django.forms.fields import EmailField
email = EmailField()
my_email = "a@a.a"
print(email.clean(my_email))
如果您的电子邮件有效,则此函数 return 值否则 return 验证错误
对于任何对此也感兴趣的人,我建议查看 django.core.validators 的实现(django.core.validators),正如 iklinac 在评论中提出的善意建议。
其中不仅有来源,还提到了用于派生正则表达式的标准,这些正则表达式检查域和文字是否具有有效格式。
最近,我开始玩 Django 并创建了一个用于用户注册的自定义表单。在那种创建电子邮件字段的表单中,我使用类似
的东西email = forms.EmailField()
我观察到 a@a.a 这样的地址被表单认为是无效的。当然,这是一个无意义的电子邮件地址。尽管如此,我想知道 Django 是如何检查有效性的。
我在网上找到了一些讨论如何检查电子邮件地址有效性的主题,但它们都提供了一些自定义方法。找不到关于 Django 默认验证器的内容。
他们在 docs 提交的电子邮件中指定
Uses EmailValidator to validate that the given value is a valid email address, using a moderately complex regular expression.
不过这不是很具体所以我决定在这里问一下。
如果您想检查验证,请使用像这样的干净函数:
from django.forms.fields import EmailField
email = EmailField()
my_email = "a@a.a"
print(email.clean(my_email))
如果您的电子邮件有效,则此函数 return 值否则 return 验证错误
对于任何对此也感兴趣的人,我建议查看 django.core.validators 的实现(django.core.validators),正如 iklinac 在评论中提出的善意建议。
其中不仅有来源,还提到了用于派生正则表达式的标准,这些正则表达式检查域和文字是否具有有效格式。