用js把地区字符串格式化为省、市、区

用js把地区信息格式化为省、市、详细信息,结果如下

 代码如下

formatter("广东省深圳市南山区深南大道10000号")
formatter("西藏自治区拉萨市城关区北京中路35号")
formatter("四川省阿坝藏族羌族自治州九寨沟县漳扎镇301省道")
formatter("北京市东城区长安街")
formatter("香港特别行政区油尖旺区东区金钟夏悫道18号")
formatter("台湾省台北市松山区敦化北路340-9号")

/**
 * 格式化地区信息
 * @param {String} str 要格式化的地区信息
 * @returns Object {province: "", city: "", detail: ""}
 */
function formatter(str = '') {
    let result = {
        province: '',
        city: '',
        detail: ''
    }

    let provinceRegExp = /(.+?(省|自治区))(.*)/
    let provinceList = str.match(provinceRegExp)

    let restStr = str
    if (provinceList) {
        result.province = provinceList[1]
        restStr = provinceList[3]
    }

    let cityRegExp = /(.+?(市|自治州|行政区))(.*)/
    let cityList = restStr.match(cityRegExp)
    if (cityList) {
        result.city = cityList[1]
        result.detail = cityList[3]
    }else {
        result.detail = restStr
    }

    console.log(result)
    return result
}

因为直辖市、特别行政区的地名比较短,方便使用,就把这类地区存入city字段中了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值