(data)
| 1 | // 地址模糊搜索 |
| 2 | function 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,''); |
nothing calls this directly
no outgoing calls
no test coverage detected