我想验证用户填写的邮政地址是否正确。
假设我们有字段 street、street_number、postal_code、city 和 country
当用户输入他的国家是法国并且城市是纽约时,如何显示错误?
或者
如何检测到邮政编码与城市不对应?
是否有使用 Ruby On Rails 解决此问题的策略,还是我应该只信任用户条目?
我想验证用户填写的邮政地址是否正确。
假设我们有字段 street、street_number、postal_code、city 和 country
当用户输入他的国家是法国并且城市是纽约时,如何显示错误?
或者
如何检测到邮政编码与城市不对应?
是否有使用 Ruby On Rails 解决此问题的策略,还是我应该只信任用户条目?
有几家公司发布美国邮政编码目录,通常不会非常昂贵,有些公司甚至附带纬度/经度数据。这是在美国或北美验证城市和州的最常见方式。国家和城市的全球邮政编码可能是一个更难的问题,或者至少是一个更昂贵的问题。
另一种方法是使用 Google Maps API,也许与您可以从位置感知浏览器(所有现代浏览器)获得的数据结合使用。老实说,我使用 API 已经有一段时间了,但似乎记得你可以在给定纬度/经度的情况下获得非常详细的信息。Google 现在对 Maps API 的大量使用收费,但如果您的网站流量甚至中等,那么您可能仍处于自由区。
在某种程度上,您必须信任用户。我记得不久前我们在我们的数据库中发现用户报告的邮政编码异常——似乎每个人都住在加利福尼亚州的比佛利山庄。那是在 2000 年左右,当时电视节目“90210”的原始版本还在——那是邮政编码 :-)。
您是否考虑过仅使用jQuery 插件来为您验证地址?它对许多用户免费,每月最多 250 次查找,并且始终是最新的(您无需维护数据库)。
顺便说一句,我在 SmartyStreets 工作。如果城市与邮政编码匹配,还有一个邮政编码 API 可用于查找,反之亦然。无论哪种方式,我们都付出了很多努力来使用户体验积极,即使他们输入的地址并不完全有效。