前端根据地址截取省市县乡镇

前端根据地址截取省市县

这里一共提供两种方法
1.将所有地区关键字写入正则 通过匹配到的次序依次判断

function splitAddress(item) {
            let sReg = /市|省|县|区|行政单位|盟|旗|海域|岛|街道办事处|街道|乡|镇/g;
            let regRes = item.match(sReg);
            console.log(regRes)
            var $i = item.indexOf(regRes[0]) + regRes[0].length;
            var province = item.substr(0, $i);

            var item2 = item.slice($i);
            var $i2 = item2.indexOf(regRes[1]) + regRes[1].length;
            var city = item2.substr(0, $i2);

            var item3 = item2.slice($i2);
            var $i3 = item3.indexOf(regRes[2]) + regRes[2].length;
            var country = item3.substr(0, $i3);
            return { province, city, country };
        }

2.完全通过正则匹配

function splitAddress(item) {
let regex = "(?<province>[^省]+自治区|.*?省|.*?行政区|.*?市)(?<city>[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市|.*?县)(?<county>[^县]+县|.+市|.*?区|.+旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇|.+街道办事处|.+街道|.*?乡)?(?<village>.*)";
var regRes = item.match(regex);
return { province: regRes[1], city: regRes[2], country: regRes[3], town: regRes[4] };
}
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值