为app设计地址验证

时间:2008-12-10 14:18:59

标签: java street-address

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

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

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

谢谢,欢迎:) Krisp

6 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

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

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

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

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

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

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

答案 3 :(得分:0)

完美的地址验证不能完全放在已经开发的应用程序中,但邮政编码/邮政编码的验证可以按国家名称进行。

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

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

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

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

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