1

我计划为在我的应用中注册的用户设计地址验证。可能通过邮政编码和州验证。

知道如何处理来自全球的地址吗?

我是否需要在数据库中插入所有邮政编码,然后验证地址。任何可能的实施建议?

谢谢和欢迎 :) Krisp

4

6 回答 6

3

由于邮政编码没有国际标准,并且在您完成将其放在一起之前,世界上所有邮政编码的列表已经过时,我建议采用较小的方法:

确定您最需要处理的国家/地区,并为每个国家/地区制定单独的验证规则。确保通过这个您可以处理绝大多数用户(例如 95% 或 98%)。对于所有其他国家/地区,只需接受他们输入的内容,无需进一步验证。

世界上有这么多不同的地址格式,不值得努力(如果可能的话)处理它们。

于 2008-12-10T14:29:18.700 回答
2

地址和邮政编码格式之间存在巨大差异,因此没有任何“标准”方式可以做到这一点。请参阅“弗兰克的邮政地址强制性指南”...

您真正需要多少/什么样的验证?例如,如果用户输入他们的送货地址,他们比您更可能知道他们当地的邮政/运输提供商需要什么特定格式。只需给他们一个多行文本区域即可输入。如果您需要其中的一部分来计算运费,只需请求您需要的信息(例如,城市/国家/地区)

于 2008-12-10T14:30:08.760 回答
0

邮政编码实际上可能令人头疼,因为在某些地方,它们可以代表非常小的区域,而在美国,它们通常代表相对较大的区域(在大城市中它们可能代表几个街区)。

看看加拿大,他们的邮政编码实际上可以代表非常非常小的区域。街对面的两家商店通常有不同的加拿大邮政编码。同样在加拿大企业列表中,合并列表时,经常会看到相同地址但邮政编码略有不同。这只是表明很多人都弄错了。在客户的基础上,我不知道他们实际上得到了正确的邮政编码是多么现实。

http://www.columbia.edu/kermit/postal-ca.html

基本上,每个公寓或商业住宅似乎都有自己的邮政编码,根据我在加拿大商业地址中看到的情况,这是有道理的。

另一点是,这只是加拿大。每个欧洲国家都会有自己的地址/邮政编码,澳大利亚、俄罗斯等也会有自己的地址/邮政编码。如果你真的想做地址验证,这是一个重大项目。

要实际验证地址,您需要验证邮政编码、城市和街道。在美国,人口普查会发布 TIGER 数据库文件,其中通常包含街道列表。但是对于其他国家/地区,我不知道您如何获得街道列表。最好查看一个商业包(也许是其中一个 GIS 包,尽管其中很多只提供美国/加拿大的详细地址,有时还提供一些欧洲国家的详细地址)。

于 2008-12-10T14:59:55.300 回答
0

一个完美的地址验证不能完全放在已经开发的应用程序中,但是邮政编码/邮政编码的验证可以根据国家名称来完成。

请检查源xml-files 源中的 ' supplementalData.xml ' xml 文件中的正则表达式。通过解析xml,您可以找到运行时传递的国家/地区代码对应的邮政编码正则表达式,您可以在其中检查它是否与国家/地区匹配。

于 2011-09-21T10:21:30.850 回答
0

正如许多用户之前提到的,验证国际地址基本上是不可能的,因为各国没有标准,许多国家没有邮政系统的资源。从技术上讲,即使在美国,USPS 也在苦苦挣扎。

您至少可以按国家/地区提供地址验证。美国是您获得大量报道的最简单的国家之一。为此,您需要连接到某种地址验证网络服务。有几家公司为此提供网络服务。需要注意的一件事是确保每个提供商都有其 API 的地理分布,以确保他们的任何中断都不会回流到您并杀死您的应用程序。除此之外,只需确保结果经过 CASS 认证。

为了全面披露,我是 SmartyStreets 的创始人。我们有一个名为 LiveAddress的地址验证 Web 服务 API 。如果您有任何问题,非常欢迎您亲自与我联系。

于 2011-10-13T01:37:28.790 回答
0

已经找到了另一个答案:请参考wiki的链接:http ://en.wikipedia.org/wiki/List_of_postal_codes 。

在这里您可以找到大多数国家/地区的大多数邮政编码模式,您可以将其中的正则表达式编写并维护到数据库中,这将帮助您轻松验证邮政编码,也是一种优化的方法!

于 2011-09-30T09:24:56.747 回答