4

我想验证用户填写的邮政地址是否正确。

假设我们有字段 street、street_number、postal_code、city 和 country

当用户输入他的国家是法国并且城市是纽约时,如何显示错误?

或者

如何检测到邮政编码与城市不对应?

是否有使用 Ruby On Rails 解决此问题的策略,还是我应该只信任用户条目?

4

2 回答 2

4

有几家公司发布美国邮政编码目录,通常不会非常昂贵,有些公司甚至附带纬度/经度数据。这是在美国或北美验证城市和州的最常见方式。国家和城市的全球邮政编码可能是一个更难的问题,或者至少是一个更昂贵的问题。

另一种方法是使用 Google Maps API,也许与您可以从位置感知浏览器(所有现代浏览器)获得的数据结合使用。老实说,我使用 API 已经有一段时间了,但似乎记得你可以在给定纬度/经度的情况下获得非常详细的信息。Google 现在对 Maps API 的大量使用收费,但如果您的网站流量甚至中等,那么您可能仍处于自由区。

在某种程度上,您必须信任用户。我记得不久前我们在我们的数据库中发现用户报告的邮政编码异常——似乎每个人都住在加利福尼亚州的比佛利山庄。那是在 2000 年左右,当时电视节目“90210”的原始版本还在——那是邮政编码 :-)。

于 2012-11-15T01:16:49.967 回答
3

您是否考虑过仅使用jQuery 插件来为您验证地址?它对许多用户免费,每月最多 250 次查找,并且始终是最新的(您无需维护数据库)。

顺便说一句,我在 SmartyStreets 工作。如果城市与邮政编码匹配,还有一个邮政编码 API 可用于查找,反之亦然。无论哪种方式,我们都付出了很多努力来使用户体验积极,即使他们输入的地址并不完全有效。

于 2013-02-04T20:04:37.557 回答