邮政编码(美国邮政编码)验证
时间:2020-03-06 15:00:23 来源:igfitidea点击:
我以为人们会一起从事小的代码项目,但是我看不到它们,所以这是一个简单的例子:
验证有效的美国邮政编码的代码。我知道那里有邮政编码数据库,但仍然有用途,例如网页,快速验证,以及邮政编码不断发布的事实,因此我们可能要使用弱验证。
我在Wiki /博客的一个副项目中写了一些有关邮政编码的信息:
https://benc.fogbugz.com/default.asp?W24
还有一种新的,怪异的邮政编码。
https://benc.fogbugz.com/default.asp?W42
我可以执行javascript代码,但很有趣的是,我们可以在这里看到多少种语言。
解决方案
Javascript Regex字面量:
美国邮政编码:/(^ \ d {5} $)|(^ \ d {5}-\ d {4} $)/
var isValidZip = /(^\d{5}$)|(^\d{5}-\d{4}$)/.test("90210");
一些国家使用邮政编码,这将使该模式失效。
我们是指地址验证吗?像Mike先前的回答一样,我们需要满足其他95%的需求。
我们可以做的是在用户选择所在国家/地区时启用验证。地址验证和邮政编码验证是两件不同的事情。验证ZIP只是确保其整数。地址验证是为了确保准确性(最好是用于邮寄)而对实际地址进行验证。
这是一个JavaScript函数,可根据国家/地区代码验证邮政编码。它允许某种程度的自由格式。我们也可以为其他国家/地区添加案例。请注意,默认情况下允许邮政编码为空,因为并非所有国家/地区都使用邮政编码。
function isValidPostalCode(postalCode, countryCode) { switch (countryCode) { case "US": postalCodeRegex = /^([0-9]{5})(?:[-\s]*([0-9]{4}))?$/; break; case "CA": postalCodeRegex = /^([A-Z][0-9][A-Z])\s*([0-9][A-Z][0-9])$/; break; default: postalCodeRegex = /^(?:[A-Z0-9]+([- ]?[A-Z0-9]+)*)?$/; } return postalCodeRegex.test(postalCode); }
仅供参考,第二个指向虚荣邮政编码的链接似乎是愚人节的玩笑。
为了使用户也可以输入带有小写字母的加拿大邮政编码,正则表达式必须如下所示:
/ ^([a-zA-Z] [0-9] [a-zA-Z])\ s *([0-9] [a-zA-Z] [0-9])$ /
function isValidUSZip(sZip) { return /^\d{5}(-\d{4})?$/.test(sZip); }