找出字符串是街道地址、套房号码、购物中心还是其他东西
Figure out if a string is a street address, suite number, shopping center, or something else
我正在使用javascript来解析一些数据,并且遇到了一点麻烦。
我有一个字段,是1-3行数据。
通常只有一行,代表街道地址:
但有时是这样的:
<>之前比佛利山庄购物中心好莱坞街1234号之前其他时候是:
<>之前好莱坞街1234号Ste 12之前其他时候是这样的
<>之前好莱坞街1234号2号楼(介乎好莱坞街与汤姆克鲁斯大道)之前我很想知道哪条线是街道地址。目前,我正在试图确定哪一行是"地址线2",意思是套房号、楼层号等……我真的不需要地址,第2行,但是通过消去过程,这可以帮助我得到街道地址。是否有一个很好的工具可用,像一个regex函数或一些东西,将告诉我一个字符串是否可能是一个街道地址?
或者有其他方法可以处理这个问题吗?
谢谢!
编辑:这个算法不需要100%。我正在准备地址要发送到谷歌地图API进行验证。我可以尝试每一行的地址,看看哪一个是有效的,但这将增加呼叫谷歌的次数,并带来一个小的,但有限的假阳性的机会。
我希望能够在通过谷歌验证之前稍微清理数据,以减少错误和更多调用的必要性。
正如另一个答案所述,这是一个地址验证服务的作业。请注意,Google maps API不是一个地址验证服务——它最好被描述为一个非常有能力的地址近似服务(有一个显著的区别)。
地址验证意味着当前地址是真实的,这意味着它对应于实际位置。它通常意味着地址是可交付的(取决于业务需要)。
我是地址验证公司SmartyStreets的软件开发人员。我们提供了一个批处理工具,我认为它非常适合您的用例。由于我们的系统最多接受两条街道地址输入行,因此我建议为每个有2条以上街道地址行的地址生成一些排列。它也非常快(在不到一个小时内处理100万个地址),并且不需要我们的任何交互,因为它是在线服务。
另一个好消息是,您甚至可能不需要将地址发送到谷歌地图API,因为它们已经经过了交付点验证。但这取决于你的具体需求。
更新: SmartyStreets现在提供国际地址验证。
有可用的web服务,你可以传递一个地址,它将返回解析地址的格式良好的json/xml对象。也许这样的东西会对你有帮助?就像一些评论说的那样。仅使用javascript
无法做到这一点这是我个人研究过的一项服务。您需要熟悉api
https://webgis.usc.edu/Services/AddressNormalization/WebService/DeterministicNormalizationWebService.aspx首先看一下以下USPS官方缩写
街道后缀缩写
二级单位标识符
然后你会有一个想法,你将期望什么作为输入,但你也必须采取所有可能的非官方变化/标点符号等....有很多事情要做……
一般来说,街道地址行应该以数字开头,后跟一个空格(将其与2nd floor等隔开),一个或多个单词,最后是街道后缀缩写。对于city, state, zip元组,您必须将完整的州名及其缩写(包括N York或N.York或N.York之类的短变体)混合在一起,并记住zip5和zip5+4的大小写
- 如何添加浮动和非浮动,其他
- 与其他库的jQuery.noConflict()
- 播放当前视频时如何停止其他视频?JavaScript
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 除修剪外的其他功能
- 是什么让一个“;Uncaught RangeError:超过了最大调用堆栈大小“;错误(Chrome,在其他浏览器中显示
- Array.length似乎不起作用;console.log则显示其他情况
- 如何消除代码中的未定义和其他问题
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 如何使用css动画从中心增加边界线
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- Jquery未定义函数正在停止其他操作
- 如何将我的javascript库公开给其他客户端使用
- Javascript阻止其他Javascript代码
- chart.series[id].remove()无法刷新高位图表/高位股票中其他系列的图例属性
- 如何“;过滤器”;或者以其他方式重构该数据
- 找出字符串是街道地址、套房号码、购物中心还是其他东西
- 如何从中心扩展选择器宽度(或其他有效的替代方案)