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

标签 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})[0-9]{3,5}$

RegEx Demo

关于正则表达式:验证美国邮政编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42865978/

相关文章:

android - 使用正则表达式从android中的网站文本数据中获取电话号码

在评估匹配的字符串时执行类似 Ruby 的正则表达式替换的 Pythonic 方法

javascript - 只能调用一次的函数

python - 如何使用 Python 插件 reCaptcha 客户端进行验证?

javascript - onclick 验证不会停止 POST 到 MVC Controller

c - 在 C 中的扫描字符上运行 isdigit()

.net - 用 .D 匹配一个词的正则表达式。在里面,就像博士一样。或医学博士 -

javascript - JS 正则表达式 正向回顾

c# - 通过键入带有 '%' 字符的子字符串来过滤字符串集合

javascript - 输入验证后弹出并提交 Javascript