📜  django regexvalidator 示例 - Python (1)

📅  最后修改于: 2023-12-03 15:14:43.414000             🧑  作者: Mango

Django RegexValidator 示例 - Python

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有两个参数:

  1. regex: 用于检查输入文本的正则表达式模式
  2. message: 如果文本不匹配正则表达式,则返回的错误消息
示例

在本示例中,我们将使用正则表达式验证电子邮件地址。

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。