用于Zipcodes的RegexValidator

时间:2015-07-09 19:40:18

标签: regex django validation

我一直在使用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 并尝试添加" |"之前,以及"?"在末尾。

还有其他建议或建议吗?

1 个答案:

答案 0 :(得分:1)

我相信你只想把它作为你的正则表达式:^(^[0-9]{5}(?:-[0-9]{4})?$|^$)

它匹配5位数字符串后跟选项短划线和4位数字或空字符串。

这是在online regex tester

中测试的