用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字段中了