我正在寻找最终的邮政编码和邮政编码正则表达式。我正在寻找一种能覆盖世界大部分地区(希望是所有地区)的东西。
当前回答
根据您的应用程序,您可能希望对大多数访问者来自的国家实现正则表达式匹配,而对其余的国家不进行验证(接受任何东西)。
其他回答
考虑到每个国家都有如此多的边缘情况(例如。伦敦地址可能使用与英国其他地区略有不同的格式)我不认为有一个终极正则表达式,除了可能:
[0-9a-zA-Z]+
最好是使用一个相当广泛的模式(好吧,不像上面那么广泛),或者用自己的特定模式对待每个国家/地区!
更新:然而,它可能动态地构造一个正则表达式基于许多更小的,特定于区域的规则-虽然不确定性能!
在RegExLib网站上可以找到许多特定国家的模式。
如果Zip Code允许字符和数字(字母数字),则在匹配的地方使用below regex, 5或9或10个字母数字字符加上一个连字符(-):
^([0-9A-Za-z]{5}|[0-9A-Za-z]{9}|(([0-9a-zA-Z]{5}-){1}[0-9a-zA-Z]{4}))$
问题是,你可能没有很好的方法来跟上地球另一端国家不断变化的邮政编码要求,而你们没有共同的语言。除非你有足够大的预算来跟踪这一点,你几乎肯定更好的责任验证地址谷歌或雅虎。
两家公司都通过可编程API提供地址查找功能。
有人问关于格式化邮件地址的列表,我想这就是他要找的…
弗兰克的邮政地址强制指南:http://www.columbia.edu/~fdc/postal/ 但这对解决街头问题没什么帮助。
我的工作使用了一些工具来帮助实现这一点: - Lexis-Nexis服务,包括NCOA查询(您将“免费”获得地址标准化) -“梅丽莎数据”http://www.melissadata.com
如果有人仍然对如何验证邮政编码感兴趣,我找到了一个解决方案:
使用谷歌地理编码API,我们可以检查具有国家代码和邮政编码本身的邮政编码的有效性。
例如,我住在乌克兰,所以我可以这样检查: https://maps.googleapis.com/maps/api/geocode/json?components=postal_code:80380|country:UA
或者使用JS API: https://developers.google.com/maps/documentation/javascript/geocoding#ComponentFiltering
其中80380是乌克兰有效的ZIP,实际上每个(#####)是有效的。
如果没有发现,谷歌返回ZERO_RESULTS状态。 或者OK和一个结果,如果两者都正确。
希望这对你有所帮助。
推荐文章
- 如何从JavaScript中使用正则表达式的字符串中剥离所有标点符号?
- 正则表达式中的单词边界是什么?
- 如何将一个标题转换为jQuery的URL段塞?
- Javascript和regex:分割字符串并保留分隔符
- (grep)正则表达式匹配非ascii字符?
- 如何在保持原始字符串的同时对字符串执行Perl替换?
- 创建正则表达式匹配数组
- *的区别是什么?和。*正则表达式?
- 如何将“camelCase”转换为“Camel Case”?
- 在Java中使用正则表达式提取值
- Java中的正则表达式命名组
- 使用正则表达式搜索和替换Visual Studio代码
- 使用split("|")按管道符号拆分Java字符串
- 替换字符串中第一次出现的模式
- “\d”在正则表达式中是数字吗?