我一直在与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-9]{5}(?:-[0-9]{4})?$|^$)
它与5位数字字符串,后跟一个破折号和4位数字或一个空字符串匹配。
这是在online regex tester中测试的
关于regex - RegexValidator for Zipcodes,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31326782/