如何在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字符”错误。还有其他使用方式吗?
最佳答案
您可以使用\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')
...
关于python - Django-使用特殊表达式的RegexValidator,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37129653/