我一直在使用Django和RegexValidator进行一个字段,我只想以DDDDD或DDDDD-DDDD格式保存有效的美国邮政编码。
我已在模型中设置了我的变量,如下所示:
zip = models.CharField(
max_length=10,
null=True,
blank=True,
help_text=_("Zipcode"),
validators=[RegexValidator(
regex=r'^(^[0-9]{5}(?:-[0-9]{4})?$)?$)',
message=_(u'Must be valid zipcode in formats 12345 or 12345-1234'),
)],
)
此时,我正在尝试创建一个也可以保存空字符串的正则表达式。我试图查看以下问题RegEx for 5 digit zip or empty Regex empty string or email 并尝试添加" |"之前,以及"?"在末尾。
还有其他建议或建议吗?
答案 0 :(得分:1)
我相信你只想把它作为你的正则表达式:^(^[0-9]{5}(?:-[0-9]{4})?$|^$)
它匹配5位数字符串后跟选项短划线和4位数字或空字符串。
中测试的