如何在 RegexValidator 中实现特殊表达式?
表单.py:
class MyRegistrationForm(forms.ModelForm):
alphanumeric = RegexValidator('^[A-Za-z]+$', 'Only alphabetic')
first_name = forms.CharField(max_length = 20, validators=[alphanumeric])
last_name = forms.CharField(max_length = 20, validators=[alphanumeric])
我也想使用:áàäéèëíìïóòöúùüñÁÀÄÉÈÈÍÌÏÓÒÖÚÙÜÑ,但出现“非ASCII字符”错误。还有其他的使用方法吗?
请您参考如下方法:
您可以使用 \w 说明符,但是由于 RegexValidator 没有启用 re.UNICODE 标志,您可能需要这样的东西:
import re
class MyRegistrationForm(forms.ModelForm):
re_alphanumeric = re.compile('^\w+$', re.UNICODE)
alphanumeric = RegexValidator(re_alphanumeric, 'Only alphabetic')
...
更新:如果您想排除数字字符,请使用
import re
class MyRegistrationForm(forms.ModelForm):
re_alpha = re.compile('[^\W\d_]+$', re.UNICODE)
alpha = RegexValidator(re_alpha, 'Only alphabetic')
...
