为应用程序设计地址验证

问题描述 投票:1回答:6

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

任何想法如何处理来自全球的地址?

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

感谢和欢迎:)克里斯普

java street-address
6个回答
3
投票

由于没有邮政编码的国际标准,世界上所有邮政编码的列表在完成组合之前都会过时,所以我建议使用较小的方法:

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

[世界上有太多不同的地址格式,以至于不去尝试(如果有可能的话)全部处理。


2
投票

地址和邮政编码格式之间存在巨大差异,因此没有任何“标准”方式可以做到这一点。参见“ Frank's Compulsive Guide to Postal Addresses” ...

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


0
投票

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

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

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

[基本上,每个公寓或企业住所似乎都有自己的邮政编码,根据我在加拿大的企业地址所见,这是有道理的。

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

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


0
投票

无法完美地将地址验证准确地放置在已经开发的应用程序中,但是可以根据国家/地区的名称来验证邮政编码/邮政编码。

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


0
投票

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

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


0
投票

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

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

为了全面披露,我是SmartyStreets的创始人。我们有一个名为LiveAddress的address verification web service API。如果有任何疑问,非常欢迎您亲自与我联系。

© www.soinside.com 2019 - 2024. All rights reserved.