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


当前回答

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

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

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

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

SP

其他回答

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

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

.* 

Big Jump忘记了换行符、空格和控制字符。

国际邮政编码是一个难以解决的问题。

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

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

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

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

SP

我们使用以下方法:

加拿大

([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

其他

接受现状

正如其他人指出的那样,用一个正则表达式来统治所有正则表达式是不可能的。但是,您可以使用来自万国邮政联盟(一个鲜为人知的联合国机构)的地址格式信息为尽可能多的国家创建正则表达式。

例如,以下是一些国家的地址格式规则,包括邮政编码(PDF格式):

加拿大 日本 瑞士 俄罗斯联邦 美利坚合众国