当前位置: 首页 > Web前端 > JavaScript

js解析地址省市区街道其他信息

时间:2023-03-26 22:23:15 JavaScript

方法封装///utils/regex.jsconstreg_address="(?[^province]+自治区|.*?province|.*?行政区|.*?city)(?[^city]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市|.*?县)(?<县>[^县]+县|.+?(District{1})|.+city|.+flag|.+sea|.+island)?(?.*)";//utils/index.jsconstRegex=require('../utils/regex')/***标识地址、省、市等*@param{string}str送货地址*@returns{province:'重庆',city:'重庆市',county:'梁平区',village:'鹤林镇xxx'}*/exports.formatAddress=(str)=>{if(!str)return//中国4个直辖市constmunicipality=['重庆','北京','上海','天津']constsubStr=str.substring(0,2)constisExist=municipality.includes(subStr)if(isExist){str=str.substring(2,str.length-1)str=`${subStr}保存${str}`}让addr=str.match(Regex.reg_address)如果(!addr)返回constgroups=Object.assign({},addr.groups)//如果是直辖市,截取地址后,将省替换成城市if(isExist){groups.province=groups.province.replace('province','')}returngroups}useconstutils=require('../utils')[注,重庆/北京/上海/天津,4个是直辖市,不用加省市]constaddress=utils.formatAddress('重庆梁平区和林镇3xxx')console.log(address)//{province:'重庆',city:'重庆市',county:'梁平区',village:'和林镇3xxx'}[注意,有2个区,只有一个区就够了]constaddress=utils.formatAddress('南宁梁庆广西壮族自治区金乡市五乡路3区xxx')console.log(address)//{省:'广西壮族自治区',市:'南宁市',县:'两清区',村:'金乡区3号五象路xxx'}