本文说的地址解析是把用户的整段地址进行拆分,分离出省市区(县)镇详细地址等,常见于商城和快递项目。
对于地址解析,新手们容易着急,因为如果用判断来把这些内容分离出来不是件容易的事情。但稍有经验的人肯定会想到使用正则表达式,前端可以使用String对象的match方法取得地址数组。
对于规范的地址或者淘宝等平台复制过来的地址,其实使用正则表达式完全可以准确分离出来,只要匹配省市区(县)等关键词就可以了,前提是你需要了解各级的所有名称。关键代码如下:
addressString.match(/.+?(省|市|自治区|自治州|县|盟|区|旗|镇|乡|$)/g);
这样就一行关键代码,只要给出规范的地址都可以正常解析,就算像东莞一样没有区(县)一级都没有问题,而且性能就不用说了。
而对于不规范的地址,如:“广东东莞樟木头2路”,这种就没法正常解析,需要列出所有的地名了。当然这种地址其实还要配合数据库查询处理,因为数据量不小。
但事实上,地址解析接口已经有很多平台提供了,所以对于要求高的解析,还是直接调接口更方便。