ZIP Code(美国邮政编码)验证

IT技术 javascript validation
2021-01-17 06:43:39

我以为人们会一起研究小代码项目,但我没有看到他们,所以这是一个简单的项目:

验证有效美国邮政编码的代码。我知道那里有邮政编码数据库,但仍有一些用途,例如网页、快速验证以及邮政编码不断发布的事实,因此您可能想要使用弱验证。

我在我的 wiki/blog 上的一个辅助项目中写了一些关于邮政编码的内容:

https://benc.fogbugz.com/default.asp?W24

还有一种新的、奇怪的邮政编码。

https://benc.fogbugz.com/default.asp?W42

我可以编写 javascript 代码,但看看我们可以在这里获得多少种语言会很有趣。

6个回答

Javascript 正则表达式文字

美国邮政编码: /(^\d{5}$)|(^\d{5}-\d{4}$)/

var isValidZip = /(^\d{5}$)|(^\d{5}-\d{4}$)/.test("90210");

某些国家/地区使用Postal Codes,这将无法使用此模式。

/^\b\d{5}(-\d{4})?\b$/ 验证简单的 5 位数字或 5+4 邮政编码。
2021-03-21 06:43:39
你可以用 /(^\d{5}(-\d{4})?$/ 替换你的测试正则表达式更简洁一点。它在许多正则表达式引擎中的运行速度也会稍微快一些。
2021-03-23 06:43:39
@cballou:实际上他应该删除第一个(. 不需要。
2021-04-06 06:43:39
邮政编码邮政编码,只是与大多数其他编码不同。
2021-04-11 06:43:39
@Dave,您的优化中有一个错字,缺少最后一个).
2021-04-14 06:43:39
function isValidUSZip(sZip) {
   return /^\d{5}(-\d{4})?$/.test(sZip);
}

这是一个 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);
}

仅供参考 提到虚荣邮政编码的第二个链接似乎是愚人节的玩笑。

我很确定你指的是 2004 年的 NPR 故事(我刚刚发现)。第二个链接中的信息来自 2007 年,我认为我阅读的其中一篇文章实际上来自 USPS 网站(我没有保存每个链接)。
2021-03-27 06:43:39
我很惊讶没有人建议让加拿大邮政编码正则表达式不区分大小写。在传递到任何地方之前,可以轻松地将小写输入转换为大写。考虑用户体验!
2021-04-11 06:43:39

如果您为加拿大做事,请记住并非所有信件都有效

这些字母无效:D、F、I、O、Q 或 U 字母 W 和 Z 不用作第一个字母。也有些人在第三个字符后使用可选空格。

这是加拿大邮政编码的正则表达式:

new RegExp(/^[abceghjklmnprstvxy][0-9][abceghjklmnprstvwxyz]\s?[0-9][abceghjklmnprstvwxyz][0-9]$/i)

最后一个i使它不区分大小写。

这是 jQuery Validate 插件additional-methods.js文件中的一个...

jQuery.validator.addMethod("zipUS", function(value, element) {
    return /(^\d{5}$)|(^\d{5}-\d{4}$)/.test(value);
}, "Please specify a valid US zip code.");

编辑:由于上面的代码是 jQuery Validate 插件的一部分,它取决于.addMethod()方法。

删除对插件的依赖并使其更通用....

function checkZip(value) {
    return (/(^\d{5}$)|(^\d{5}-\d{4}$)/).test(value);
};

示例用法:http : //jsfiddle.net/5PNcJ/