📅  最后修改于: 2023-12-03 15:14:43.414000             🧑  作者: Mango
Django提供了一种名为RegexValidator的验证器,它可以用于检查文本输入是否与特定的正则表达式模式匹配。
在models.py中的某个CharField上使用正则表达式
from django.db import models
from django.core.validators import RegexValidator
class MyModel(models.Model):
myfield = models.CharField(max_length=50, validators=[RegexValidator(regex='^[0-9a-zA-Z]*$', message='只能输入字母或数字')])
在表单验证器中使用正则表达式
from django import forms
from django.core.validators import RegexValidator
class MyForm(forms.Form):
myfield = forms.CharField(validators=[RegexValidator(regex='^[0-9a-zA-Z]*$', message='只能输入字母或数字')])
RegexValidator有两个参数:
在本示例中,我们将使用正则表达式验证电子邮件地址。
from django import forms
from django.core.validators import RegexValidator
class ContactForm(forms.Form):
name = forms.CharField()
email = forms.CharField(validators=[RegexValidator(regex=r'^[\w.%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}$', message='请输入有效的电子邮件地址。')])
message = forms.CharField(widget=forms.Textarea)
这段代码将使用正则表达式模式来验证电子邮件地址。如果输入的文本与模式不匹配,则会返回一个带有错误消息的验证错误。
RegexValidator为Django应用程序开发者提供了一种有效的验证输入的方式,以确保输入符合特定的正则表达式模式。该验证器可用于任何需要输入验证的地方,例如Django表单或CharField。