我正在尝试将表单字段的输入验证为仅包含12-14位数字并且可能带有前导零的数字。
但是,当我在表单字段中添加以下用于数字的正则表达式验证器时,似乎在表单上设置了max_length且验证失败时都会发生干扰。
only_numbers = RegexValidator(r'^\d{1,10}$')
mpan_lower = forms.CharField(label='some_label',
help_text=mark_safe('Help text with link. '
'<a href="#"> Need more help?</a>'),
validators=[
only_numbers,
],
max_length=14,
)
答案 0 :(得分:1)
r'^\d{1,10}$'
此正则表达式允许使用1到10位数字。字符串12345678901234
有14位数字,因此正则表达式验证器将不接受它。
如果您希望输入12到14位数字,请使用:
r'^\d{12,14}$'
或者,您可以使用r'^\d+$
(匹配1个或多个数字),并以另一种方式验证长度(例如,为表单字段设置min_length
和max_length
)。