我正在寻找最终的邮政编码和邮政编码正则表达式。我正在寻找一种能覆盖世界大部分地区(希望是所有地区)的东西。


当前回答

我们使用以下方法:

加拿大

([A-Z]{1}[0-9]{1}){3}   //We raise to upper first

美国

[0-9]{5}                //-or-
[0-9]{5}-[0-9]{4}       //10 digit zip

其他

接受现状

其他回答

有人问关于格式化邮件地址的列表,我想这就是他要找的…

弗兰克的邮政地址强制指南:http://www.columbia.edu/~fdc/postal/ 但这对解决街头问题没什么帮助。

我的工作使用了一些工具来帮助实现这一点: - Lexis-Nexis服务,包括NCOA查询(您将“免费”获得地址标准化) -“梅丽莎数据”http://www.melissadata.com

这是一个非常简单的RegEx,用于验证美国邮政编码(而不是邮政编码+ 4):

(?!([089])\1{4})\d{5}

似乎除了00000、88888和99999之外,所有五位数字都是有效的邮政编码。

我已经用http://regexpal.com/测试了这个RegEx

SP

根据您的应用程序,您可能希望对大多数访问者来自的国家实现正则表达式匹配,而对其余的国家不进行验证(接受任何东西)。

没有。

世界各地的邮政/邮政编码并不遵循一个共同的模式。在一些国家,它们由数字组成,在其他国家,它们可以是数字和字母的组合,有些可以包含空格,有些可以包含点,字符的数量从2个到至少6个不等……

你能做的(理论上)是为世界上每个国家创建一个单独的正则表达式,我不推荐。但是您仍然会忽略验证部分:邮政编码12345可能存在,但12346不存在,也许12344也不存在。你如何用正则表达式检查它?

你不能。

问题是,你可能没有很好的方法来跟上地球另一端国家不断变化的邮政编码要求,而你们没有共同的语言。除非你有足够大的预算来跟踪这一点,你几乎肯定更好的责任验证地址谷歌或雅虎。

两家公司都通过可编程API提供地址查找功能。