正则表达式:验证美国邮政编码

时间:2017-03-17 19:47:31

标签: regex validation

我正在寻找一个验证美国邮政编码的正则表达式,并且在开始时不能包含超过2个0:

例如:00979是有效的邮政编码(波多黎各)

但我希望用户不要输入类似000979或00012的内容

有效的邮政编码是:979,0979,00979,970,907,0907,00970 ......

无效的邮政编码是:00000,00012,12,......

我想出了

/^\d[0-9][0-9]{1,3}[1-9]([\-]\d{4})?$/

但这并不能证实979.我在这里做错了什么?我查看了有关验证美国邮政编码的其他参考资料,但没有一个验证尾随0的情况..

2 个答案:

答案 0 :(得分:3)

您可以使用此正则表达式,在开始时最多允许2个零:

^(?!0{3})[0-9]{3,5}$

RegEx Demo

答案 1 :(得分:0)

不是你的\ d已经过滤出1 [0-9]了吗?

/ ^ \ d [0-9] [0-9] {1,3} 1-9?$ /

  9 7 9 oops ...