不完全回答这个问题,但我曾经有过验证邮政编码的任务
为此,我建立了以下正则表达式;希望有帮助。
正如我之前所说的,没有办法验证给定国家/地区的每个地址,更不用说在地球上!它必须是一个通用的文本字段,也许只是检查你不想要的字符:"?<>=;@$%^*!" 并清理输入以免注入 SQL。
在我的应用程序中,邮政编码根据国家/地区字段进行了测试,但如果您知道您只会测试选定的几个,您可以将一些放在一起,例如:US/UK =/^([\d]{5}(-[\d]{4})?)|([A-Z]?[A-Z][0-9][A-Z0-9]?\s[0-9][A-Z]{2})/
Afghanistan,Angola,Belize,Benin,Hong Kong,Ireland, Macau
no Postal Code
Argentina
^[A-Z][0-9]{4}[A-Z]{3}$
Canada
^(?!.*[DFIOQU].*)([A-Z][0-9]){3}$
US
^[\d]{5}(-[\d]{4})?$
UK
^[A-Z]?[A-Z][0-9][A-Z0-9]?\s[0-9][A-Z]{2}$
Latvia
^LV[-\s]?[\d]{4}$
Hungary,Denmark,Cyprus,Georgia,Bangladesh,Austria,Armenia,Australia,Albania,Belgium,Bulgaria,Cape Verde,Philippines,Paraguay
Norway,New Zealand,Liechtenstein,Luxembourg,South Africa,Tunisia,Switzerland
^[\d]{4}$
Netherlands
^[\d]{4}\s[A-Z]{2}$
Portugal
^[\d]{4}[\s-][\d]{3}$
Israel,Iraq,Indonesia,Greece,Germany,Guam,Croatia,Costa Rica,Estonia,Egypt,France,Finland,American Samoa,Algeria
Brazil,Bosnia and Herzegovina,Cambodia,Palau,Morocco,Montenegro,Northern Mariana Islands,Lithuania,Italy,Malaysia
Mexico,Marshall Islands,Micronesia,Serbia,Puerto Rico,San Marino,Taiwan,Thailand,Spain,Sri Lanka,Turkey,Ukraine,U.S. Virgin Islands,Vatican
^[\d]{5}$
Poland
^[\d]{2}[\s-]?[\d]{3}$
Czech Republic, Slovakia, Sweden
^[\d]{3}[\s-]?[\d]{2}$
Iran
^[\d]{5}[\s-][\d]{5}$
China,Colombia,Belarus,Panama,Pakistan,Nigeria,Kazakhstan,Singapore,Romania,Russia
^[\d]{6}$