Skip to content

Instantly share code, notes, and snippets.

@risent
Last active November 7, 2019 09:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save risent/cd49b43e081d6d8dcb11c2f7d972860a to your computer and use it in GitHub Desktop.
Save risent/cd49b43e081d6d8dcb11c2f7d972860a to your computer and use it in GitHub Desktop.
从地址中解析出对应的行政区划
const parseAddr = (addr) => {
const sepList = ['省', '市', '市', '县', '区', '街道', '乡', '镇']
const res = []
let rest = addr
for (let sep of sepList) {
let m = rest.split(sep, 2)
let current
if (m.length > 1) {
current = m[0] + sep
res.push(current)
rest = rest.slice(current.length)
}
}
return res
}
const addrList = [
'上海市松江区新桥镇新格路950弄8号2幢及9号3幢1楼',
'上海市松江区文翔路4000号',
'江苏省泰兴市滨江镇中港路3号',
'江苏省溧阳市昆仑街道燕园北路90号',
'江苏省南京市江宁区淳化街道南京生命科技小镇南京生命科技小镇南区1期',
'江苏省睢宁县经济开发区苏源北路2-8号',
'江苏省苏州工业园区娄葑街道群星三路168号',
'江苏省苏州市苏州工业园区娄葑街道群星三路168号',
'江苏省常熟市董浜镇望贤路38号',
'江苏省苏州市常熟市董浜镇望贤路38号',
'江苏省苏州市昆山市开发区第三大道',
'江苏省昆山市开发区第三大道29',
'江苏省镇江市电力路8号'
]
for (let addr of addrList) {
console.log('addr: ', addr)
let res = parseAddr(addr)
console.log(res)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment