如何在RegexValidator
?
forms.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字符”错误。有没有其他方法可以使用它?
答案 0 :(得分:2)
您可以使用\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')
...