From b4a4e87f9fb74cd3e09e79383b8ad255f389aaee Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Fri, 22 Sep 2023 11:16:04 +0800 Subject: [PATCH] 再次增强智能地址识别的能力 --- forms/chinaArea/SmartAddress.js | 17 ++++++++++------- 1 files changed, 10 insertions(+), 7 deletions(-) diff --git a/forms/chinaArea/SmartAddress.js b/forms/chinaArea/SmartAddress.js index 4c6ce09..1b41fcb 100644 --- a/forms/chinaArea/SmartAddress.js +++ b/forms/chinaArea/SmartAddress.js @@ -158,7 +158,7 @@ } } } - }) + }); } _isAddress(tree, content) { @@ -175,7 +175,8 @@ _parseAddress(chinaTree, content) { content = content.replace('中国', ''); // 省份处理 --- - const provinceTailReg = /特别行政区|自治区|省|市$/; + const provinceTail = '特别行政区|壮族自治区|回族自治区|维吾尔自治区|自治区|省|市'; + const provinceTailReg = new RegExp(provinceTail + '$'); for (let province of chinaTree) { const provinceStr = province.label.replace(provinceTailReg, ''); // 省份匹配 @@ -184,10 +185,11 @@ this.wordData.province = province.label; this.wordData.provinceCode = province.value; // 移除省份 - const provinceNameReg = new RegExp('^' + provinceStr + '(特别行政区|自治区|省|市)?'); + const provinceNameReg = new RegExp('^' + provinceStr + '(' + provinceTail + ')?'); content = content.replace(provinceNameReg, ''); // 市级处理 --- - const cityTailReg = /市|区|县|自治县|自治州|地区$/; + const cityTail = '市|区|县|自治县|自治州|地区'; + const cityTailReg = new RegExp(cityTail + '$'); for (let city of province.children) { const cityStr = city.label.replace(cityTailReg, ''); // 市级匹配 @@ -196,10 +198,11 @@ this.wordData.city = city.label; this.wordData.cityCode = city.value; // 移除市级 - const cityNameReg = new RegExp('^' + cityStr + '(市|区|县|自治县|自治州|地区)?'); + const cityNameReg = new RegExp('^' + cityStr + '(' + cityTail + ')?'); content = content.replace(cityNameReg, ''); // 区级处理 --- - const distTailReg = /市|区|县|镇|乡|自治县|开发区|新区|矿区|旗|自治旗$/; + const distTail = '市|区|县|镇|乡|自治县|开发区|新区|矿区|旗|自治旗'; + const distTailReg = new RegExp(distTail + '$'); for (let dist of city.children) { const distStr = dist.label.replace(distTailReg, ''); // 区级匹配 @@ -208,7 +211,7 @@ this.wordData.dist = dist.label; this.wordData.distCode = dist.value; // 移除区级 - const distNameReg = new RegExp('^' + distStr + '(市|区|县|镇|乡|自治县|开发区|新区|矿区|旗|自治旗)?'); + const distNameReg = new RegExp('^' + distStr + '(' + distTail + ')?'); content = content.replace(distNameReg, ''); } } -- Gitblit v1.9.1