封装一段ts代码,输入省+市+区+地址或者自治区+市+区+地址,最后输出SF:"省/自治区",DQ:"市",QX:"区",XXDZ: "地址"
时间: 2023-12-11 17:05:02 浏览: 31
```typescript
interface Address {
SF: string;
DQ: string;
QX: string;
XXDZ: string;
}
function parseAddress(addressStr: string): Address | null {
const regex = /^(?<province>[^省]+省|[^自治区]+自治区)(?<city>[^市]+市)(?<district>[^区]+区)(?<detail>.+)$/;
const match = regex.exec(addressStr.trim());
if (!match) {
return null;
}
const { province, city, district, detail } = match.groups!;
return {
SF: province.endsWith('自治区') ? province : province.slice(0, -1),
DQ: city.slice(0, -1),
QX: district.slice(0, -1),
XXDZ: detail.trim(),
};
}
```
使用示例:
```typescript
const addressStr1 = '广东省深圳市南山区科技园南区望海路兴科苑B2栋';
const addressStr2 = '内蒙古自治区呼和浩特市赛罕区盛世天城小区1号楼2单元101室';
const address1 = parseAddress(addressStr1);
console.log(address1); // { SF: '广东省', DQ: '深圳市', QX: '南山区', XXDZ: '科技园南区望海路兴科苑B2栋' }
const address2 = parseAddress(addressStr2);
console.log(address2); // { SF: '内蒙古自治区', DQ: '呼和浩特市', QX: '赛罕区', XXDZ: '盛世天城小区1号楼2单元101室' }
```