MCPcopy
hub / github.com/mumuy/data_location / locationSearch

Function locationSearch

static/script/locationSearch.js:2–98  ·  view source on GitHub ↗
(data)

Source from the content-addressed store, hash-verified

1// 地址模糊搜索
2function locationSearch(data){
3 const unitList = ['省','自治区','特别行政区','市','自治州','盟','自治县','县','自治旗','旗','地区','矿区','林区','特区','区'];
4 const peopleList = ['汉族','壮族','蒙古族','回族','藏族','维吾尔族','苗族','彝族','布依族','朝鲜族','满族','侗族','瑶族','白族','东乡族','锡伯族','土家族','哈尼族','哈萨克族','傣族','黎族','僳僳族','佤族','畲族','拉祜族','水族','纳西族','景颇族','柯尔克孜族','土族','高山族','达斡尔族','仫佬族','羌族','撒拉族','德昂族','仡佬族','阿昌族','普米族','布朗族','塔吉克族','怒族','乌孜别克族','俄罗斯族','鄂温克族','毛南族','保安族','裕固族','京族','塔塔尔族','独龙族','鄂伦春族','赫哲族','门巴族','珞巴族','基诺族'];
5 var hash = {};
6 var map = {};
7 for(var key in data){
8 hash[key] = data[key];
9 if(hash[key].indexOf('新区')==-1){
10 unitList.forEach(function(unit){
11 if(hash[key].lastIndexOf(unit)==hash[key].length-unit.length){
12 if(hash[key].length-unit.length>=2){
13 hash[key] = hash[key].replace(unit,'');
14 }
15 }
16 });
17 }
18 peopleList.forEach(function(people){
19 if(hash[key].indexOf('族')){
20 if(hash[key].length-people.length>=2){
21 hash[key] = hash[key].replace(people,'');
22 }
23 }
24 });
25 }
26 var provinceName = '';
27 var cityName = '';
28 for(var key in hash){
29 if(key.match(/0000$/)){
30 map[key] = hash[key];
31 }else if(key.match(/00$/)){
32 provinceName = hash[key.replace(/\d{4}$/,'0000')]||'';
33 map[key] = provinceName+hash[key]+provinceName;
34 }else{
35 provinceName = hash[key.replace(/\d{4}$/,'0000')]||'';
36 cityName = hash[key.replace(/\d{2}$/,'00')]||'';
37 map[key] = provinceName+hash[key]+cityName+provinceName+hash[key]+'|'+cityName+hash[key]+provinceName+cityName+hash[key];
38 }
39 }
40 this.query = function(keyword){
41 var temp = {};
42 keyword = keyword.trim().replace(/[\s\#\-\/\.]+/g,'|');
43 if(keyword.length>3){
44 unitList.forEach(function(unit){
45 for(var i=0;i<2;i++){
46 var temp = '|'+keyword.replace(unit,'|');
47 if(!temp.match(/\|\S{0,1}\|/)){
48 keyword = keyword.replace(unit,'|');
49 }
50 }
51 });
52 peopleList.forEach(function(people){
53 for(var i=0;i<2;i++){
54 var temp = '|'+keyword.replace(peopleList,'');
55 if(!temp.match(/\|\S{0,1}\|/)){
56 keyword = keyword.replace(peopleList,'');
57 }
58 }
59 });
60 keyword = keyword.replace(/\|/g,'');

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected