【发布时间】:2015-08-26 06:53:56
【问题描述】:
我想验证美国邮政编码并且我使用了这些正则表达式:
/(^\d{5}$)|(^\d{5}-\d{4}$)/.test(value); //First
/^\b\d{5}(-\d{4})?\b$/.test(value); //Second
/^\d{5}(-\d{4})?(?!-)$/.test(value); //Third
/^\d{5}(?:[-\s]\d{4})?$/.test(value); //Fourth
我测试了here、here 和 here,美国邮政编码从 1001 开始。显然,使用上面的任何一个正则表达式都接受“00000”,因为它有 5 位数字?
最终,我希望它接受以 1001 开头的 4 位邮政编码。我的正则表达式是否正确?
【问题讨论】:
-
/^[1-9]开头怎么样,这个不允许从零开始 -
这里绝对需要正则表达式吗?你不能只检查数字的长度是否为 4 ,是否是大于 1001 的数字?
-
理论上,但如果想将此正则表达式与另一个组合,则可以将两者连接起来,而不是部分代码
-
马萨诸塞州阿加瓦姆使用允许
01001的前导零来强制邮政编码为5 位有什么问题?在大多数情况下,如果有人输入了 4 位数字,他们可能输错了邮政编码。如果他们的邮政编码是 4 位数字,您可以在旁边提及,请使用前导零。
标签: javascript regex validation zipcode