纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

推荐一款免费的收货信息智能识别工具

5月13日 观潮阁投稿
  大家好,我是Echa。
  今天给大家分享非常实用的收货信息智能识别工具,该工具使用广泛,比如小程序,H5,App等等,大大提高用户体验和工作效率。但是市面上大部分都是按照API调用平次来收费的,总体来说比较贵。目前推荐这个是免费的,智能匹配率大概在85作用,希望大家喜欢。创作不易,喜欢的老铁们加个关注,点个赞,后面会持续更新干货,速速收藏,谢谢!
  源码地址:https:gitee。comJCfengjsutiltreemainaddressauto
  效果图:
  核心代码:收件人信息自动识别param{String}autovalue输入的信息returns{ReturnInfo}functionaddressauto(autovalue){储存分割后的数据type{String〔〕}letsplitres〔autovalue〕支持的分割符type{string〔〕}letsplitters〔,,,,,r,〕按不同的分隔符依次分割for(letsplitterofsplitters){letsplitres1〔〕for(letsplitresitemofsplitres){splitres1。push(。。。splitresitem。split(splitter))}splitressplitres1}类型标记后面会对每个分割后的部分进行类型检测letTYPEMOBILE10手机letTYPENAME11名字letTYPEADDRPROVINCE12地址省份部分letTYPEADDRCITY13地址城市部分letTYPEADDRCOUNTY14地址区县部分letTYPEADDRDETAIL15地址详细地址部分地址中可写可不写的部分letDISPENSIBLEPROVINCES〔省,市,自治区〕letDISPENSIBLECITYS〔市,地区,区,盟,自治州〕letDISPENSIBLECOUNTYS〔林区,族区,区,自治县,县,市,自治旗,旗〕储存地区信息的结构typedef{Object}AreaInfoproperty{String}code地区编码property{String}name地区名称property{String}nameexceptdispensible除了dispensible部分后的地区名称property{Number}similarity匹配nameexceptdispensible时的相似度地区数据处理函数param{Object。String,String}data地区数据param{Array。String}dispensiblelist可忽略的内容returns{Array。}}letareadataprocessingfunction(data,dispensiblelist){returnObject。entries(data)。map(entry{letitem{code:entry〔0〕,name:entry〔1〕,nameexceptdispensible:entry〔1〕,similarity:1,}for(letdispensibleitemofdispensiblelist){if(item。name。endsWith(dispensibleitem)item。name。lengthdispensibleitem。length2){item。nameexceptdispensibleitem。name。substring(0,item。name。lengthdispensibleitem。length)item。similarityitem。nameexceptdispensible。lengthitem。name。lengthbreak}}returnitem})}letprovincesareadataprocessing(areaList。provincelist,DISPENSIBLEPROVINCES)储存省份信息的数组letcitysareadataprocessing(areaList。citylist,DISPENSIBLECITYS)储存省份信息的数组letcountysareadataprocessing(areaList。countylist,DISPENSIBLECOUNTYS)储存省份信息的数组匹配到的信息的结构typedef{Object}ResInfoproperty{String}code地区编码property{String}name地区名称property{Number}similarity相似度(完全匹配时为1)property{Number}splitresindex对应的splitres数组中的数据的索引property{String}〔captureprovince〕捕获的省份内容,此字段只在省份信息内存在property{String}〔capturecity〕捕获的城市内容,此字段只在城市信息内存在property{String}〔capturecounty〕捕获的区县内容,此字段只在区县信息内存在property{Number}〔maxcitysplitresindex〕最大相似度的城市对应的splitres数组中的数据的索引,此字段只在最终结果中存在property{Number}〔maxcityresInfoindex〕最大相似度的城市对应的cityresInfolist数组中的数据的索引,此字段只在最终结果中存在property{Number}〔maxprovincesplitresindex〕最大相似度的省份对应的splitres数组中的数据的索引,此字段只在最终结果中存在property{Number}〔maxprovinceresInfoindex〕最大相似度的省份对应的provinceresInfolist数组中的数据的索引,此字段只在最终结果中存在储存匹配到的省份信息type{ResInfo〔〕}letprovinceresInfolist〔〕储存匹配到的城市信息type{ResInfo〔〕}letcityresInfolist〔〕储存匹配到的区县信息type{ResInfo〔〕}letcountyresInfolist〔〕分割后的数据的扩展结构typedef{Object}SplitResExproperty{String}value原始splitres数组内对应的元素property{Number}type类型标记对splitres数组的数据进行处理后的拓展数据type{SplitResEx〔〕}letsplitresexsplitres。filter(splitresitemsplitresitem!)。map(splitresitem{return{value:splitresitem,type:0,}})用于匹配11位手机号的正则表达式letregexpmobilenewRegExp(〔09〕{11},gmu)储存手机的识别结果letmobile储存splitresex数组内识别到手机的元素的索引letmobilesplitresindex1开始识别,遍历splitresexfor(leti0;isplitresex。i){letsplitresitemsplitresex〔i〕当前遍历元素识别到手机(如果有多个,只储存最后一个)if(regexpmobile。test(splitresitem。value)){splitresitem。typeTYPEMOBILE标记类型mobilesplitresitem。value储存识别结果mobilesplitresindexi储存对应索引}对每个splitresex元素遍历识别所有的省份、城市、区县构建〔省份、城市、区县〕遍历结构letloopdata〔{data:provinces,type:TYPEADDRPROVINCE,resInfolist:provinceresInfolist,typename:province},{data:citys,type:TYPEADDRCITY,resInfolist:cityresInfolist,typename:city},{data:countys,type:TYPEADDRCOUNTY,resInfolist:countyresInfolist,typename:county},〕遍历〔省份、城市、区县〕for(letj0;j3;j){遍历(省份)或(城市)或(区县)for(letitemofloopdata〔j〕。data){letsimilarityundefined相似度letcapturevalueundefined储存捕获到的名称完整匹配某个(省份)或(城市)或(区县)的名称if(splitresitem。value。search(item。name)!1){similarity1相似度为1capturevalueitem。name储存完整名称}非完整匹配某个(省份)或(城市)或(区县)的名称elseif(splitresitem。value。search(item。nameexceptdispensible)!1){similarityitem。similarity储存相似度(前面已计算)capturevalueitem。nameexceptdispensible储存省略后的名称}成功匹配,储存信息if(similarity!undefined){loopdata〔j〕。resInfolist。push({code:item。code,name:item。name,similarity:similarity,splitresindex:i,〔capture{loopdata〔j〕。typename}〕:capturevalue})}}}}由区县的匹配结果决定地址信息最终是否匹配成功只要区县匹配成功,不论城市和省份是否匹配成功,最终都将按匹配成功处理下面的处理主要是针对匹配到多个区县的情况,最终按叠加的相似度决定匹配结果因为该步骤主要是为了消除误判的区县,所以区县所属的城市和省份被匹配时,权重分别是10倍和100倍if(countyresInfolist。length1){遍历区县的匹配结果for(leti0;icountyresInfolist。i){letcountyresInfoitemcountyresInfolist〔i〕本次遍历的区县元素letaddsimilarity0最后要叠加到区县结果内的相似度遍历城市的匹配结果for(letj0;jcityresInfolist。j){若匹配成功的区县其所属的城市同时也匹配成功,则记录其相似度if(cityresInfolist〔j〕。code。substring(0,4)countyresInfoitem。code。substring(0,4)){被匹配的区县所属的城市可能会匹配到多个,所以要找出其中相似度最大的if(cityresInfolist〔j〕。similarityaddsimilarity){addsimilaritycityresInfolist〔j〕。similarity}}}countyresInfoitem。similarityaddsimilarity10在城市的相似度的基础上乘10遍历省份的匹配结果(同上)addsimilarity0for(letj0;jprovinceresInfolist。j){if(provinceresInfolist〔j〕。code。substring(0,2)countyresInfoitem。code。substring(0,2)){if(provinceresInfolist〔j〕。similarityaddsimilarity){addsimilarityprovinceresInfolist〔j〕。similarity}}}countyresInfoitem。similarityaddsimilarity100在省份的相似度的基础上乘10}按叠加后的相似度对区县的匹配结果进行排序,从大到小countyresInfolist。sort((item0,item1)item1。similarityitem0。similarity)排序后的区县匹配结果中的第一个元素视作最终匹配元素letmatchingcountycountyresInfolist〔0〕在对应的splitresex数组内的数据上加上区县地址匹配标记splitresex〔matchingcounty。splitresindex〕。typeTYPEADDRCOUNTY在城市匹配结果中寻找最终匹配的区县所属的城市letmaxsimilarity0临时变量,记录当前已遍历的匹配城市中相似度最大的letmaxresInfoindex1相似度最大的城市在cityresInfolist数组中对应的索引for(leti0;icityresInfolist。i){if(cityresInfolist〔i〕。code。substring(0,4)matchingcounty。code。substring(0,4)){if(cityresInfolist〔i〕。similaritymaxsimilarity){maxsimilaritycityresInfolist〔i〕。similaritymaxresInfoindexi}}}若寻找到相应的匹配城市,则储存和设置对应的信息if(maxresInfoindex!1){matchingcounty。maxcitysplitresindexcityresInfolist〔maxresInfoindex〕。splitresindexmatchingcounty。maxcityresInfoindexmaxresInfoindexsplitresex〔cityresInfolist〔maxresInfoindex〕。splitresindex〕。typeTYPEADDRCITY}在省份匹配结果中寻找最终匹配的区县所属的省份,同上maxsimilarity0maxresInfoindex1for(leti0;iprovinceresInfolist。i){if(provinceresInfolist〔i〕。code。substring(0,2)matchingcounty。code。substring(0,2)){if(provinceresInfolist〔i〕。similaritymaxsimilarity){maxsimilarityprovinceresInfolist〔i〕。similaritymaxresInfoindexi}}}if(maxresInfoindex!1){matchingcounty。maxprovincesplitresindexprovinceresInfolist〔maxresInfoindex〕。splitresindexmatchingcounty。maxprovinceresInfoindexmaxresInfoindexsplitresex〔provinceresInfolist〔maxresInfoindex〕。splitresindex〕。typeTYPEADDRPROVINCE}}储存名字的识别结果letnamesplitresex数组中还未匹配到任何类型的元素letsplitrestypeequal0〔〕遍历splitresex数组,寻找还未匹配到任何类型的元素for(leti0;isplitresex。i){if(splitresex〔i〕。type0){splitrestypeequal0。push({splitresitem:splitresex〔i〕,index:i})}}按内容的长度排序,从小到大splitrestypeequal0。sort((item0,item1)item0。splitresitem。value。lengthitem1。splitresitem。value。length)遍历排序后的splitrestypeequal0数组(splitrestypeequal0数组中除了可能存在名字外,还可能存在详细地址)规则1:名字不会被除手机外的其他信息包裹在中间,既除手机外,名字应该在两端规则2:名字不会比详细地址长for(leti0;isplitrestypeequal0。i){letitemsplitrestypeequal0〔i〕。splitresitem对应的splitresitem数组的元素letindexsplitrestypeequal0〔i〕。index对应的splitresitem数组的元素的索引储存特定情况下,名字所有可能出现的位置(名字应该在两端)若未匹配到手机,则名字应该在两端,否则,名字应该在除了手机所在位置后的两端if(mobilesplitresindex0){accessindexs〔1,splitresex。length1〕}elseif(mobilesplitresindexsplitresex。length1){accessindexs〔0,splitresex。length2〕}else{accessindexs〔0,splitresex。length1〕}匹配if(accessindexs。indexOf(index)!1){若splitrestypeequal0内不止一个元素,说明splitrestypeequal0内存在详细地址部分if(splitrestypeequal0。length1){letaddlength0储存除本元素外的其他元素的内容长度的累加值累加其他部分for(letj0;j){addlengthsplitrestypeequal0〔j〕。splitresitem。value。length}for(letji1;jsplitrestypeequal0。j){addlengthsplitrestypeequal0〔j〕。splitresitem。value。length}若本元素长度小于其他元素的长度累加值,则判定本元素为名字if(item。value。lengthaddlength){item。typeTYPENAMEnameitem。valuebreak}}若splitrestypeequal0内只有一个元素,则判定本元素为名字else{item。typeTYPENAMEnameitem。valuebreak}}}letprovince储存省份的识别结果letcity储存城市的识别结果letcounty储存区县的识别结果letcode储存地区编码的识别结果letdetail储存详细地址的识别结果若有识别到区县地址if(countyresInfolist。length0){letmatchingcountycountyresInfolist〔0〕最终匹配元素letdetailjoinindexlist〔〕储存详细地址的各个部分对应的splitresex数组元素的索引若有匹配到的省份if(matchingcounty。hasOwnProperty(maxprovincesplitresindex)){detailjoinindexlist。push(matchingcounty。maxprovincesplitresindex)provinceprovinceresInfolist〔matchingcounty。maxprovinceresInfoindex〕。name}else{provinceareaList。provincelist〔matchingcounty。code。substring(0,2)0000〕}若有匹配到的城市if(matchingcounty。hasOwnProperty(maxcitysplitresindex)){检测是否与匹配到的省份对应的splitresex数组元素的索引重复,不重复才添加if(detailjoinindexlist。indexOf(matchingcounty。maxcitysplitresindex)1){detailjoinindexlist。push(matchingcounty。maxcitysplitresindex)}citycityresInfolist〔matchingcounty。maxcityresInfoindex〕。name}else{cityareaList。citylist〔matchingcounty。code。substring(0,4)00〕}检测是否与匹配到的省份及城市对应的splitresex数组元素的索引重复,不重复才添加if(detailjoinindexlist。indexOf(matchingcounty。splitresindex)1){detailjoinindexlist。push(matchingcounty。splitresindex)}countymatchingcounty。namecodematchingcounty。code将其余未匹配到任何类型的元素判定为详细地址部分,添加其对应的splitresex数组元素的索引到detailjoinindexlist数组for(leti0;isplitresex。i){if(splitresex〔i〕。type0){detailjoinindexlist。push(i)}}拼接detailjoinindexlist数组内所有元素对应的splitresex数组元素的内容detaildetailjoinindexlist。map(isplitresex〔i〕。value)。join()去除省份信息if(matchingcounty。hasOwnProperty(maxprovinceresInfoindex)){detaildetail。replace(provinceresInfolist〔matchingcounty。maxprovinceresInfoindex〕。captureprovince,)}去除城市信息if(matchingcounty。hasOwnProperty(maxcityresInfoindex)){detaildetail。replace(cityresInfolist〔matchingcounty。maxcityresInfoindex〕。capturecity,)}去除区县信息detaildetail。replace(matchingcounty。capturecounty,)}return{name:name,tel:mobile,province:province,city:city,county:county,areaCode:code,addressDetail:detail,}}

推荐一款免费的收货信息智能识别工具大家好,我是Echa。今天给大家分享非常实用的收货信息智能识别工具,该工具使用广泛,比如小程序,H5,App等等,大大提高用户体验和工作效率。但是市面上大部分都是按照AP……44岁宝妈被医生告知胎儿畸形,几个月后剖开肚子丈夫当场失声痛孩子是一个家庭的希望,是父母的寄托,尤其是在孩子还小的时候,一家人会把所有的精力放在孩子身上,都希望自己的孩子平安健康,越来越优秀。但是如果在怀孕的时候,医生告诉你胎儿畸形,你……四川阿坝童话公路自驾攻略头条创作挑战赛这期菲夜介绍一条阿坝童话公路自驾线路,这里有中国的阿尔卑斯山四姑娘山,人间瑶池黄龙,魔兽世界莲宝叶则,世界上海拔最高的咖啡厅达古冰川等等。阿坝童话公路路线图……临期食品背后的百亿市场伴随着消费市场的不断开发和电商的发展,我国的快消品行业逐步迈入存量时代。疫情常态化趋势的影响使得市场环境发生了结构性变化,人们的消费偏好发生转变。经济下行压力大,消费者对于价格……华为MatePadPro4999,与笔记本电脑几乎等价,两者个人电脑现在的用途广泛,甚至很多时候都超过家里的电视机,除了工作,学习之外,有些外出打拼,刚刚毕业的学生,宁可不要电视机,电脑那是必须要带上的,看电视,玩游戏,完成工作都靠它,……分享5种我的空气炸锅食谱,不用一滴油,也能炸出来的美味随着社会发展,现在厨房的新型家电越来越多,可以更好地解放双手。像小朋友特别喜欢的油炸食物,以前就是直接在油锅里面油炸,那样油炸的食物脂肪含量高,食物里面吸满了油脂吃多了对……7月28日LPL赛前预测UP对阵IG,BLG对阵FPX,哪两大家好,我是叨叨!〔微笑〕点击右上方的关注,每天和大家聊聊LPL赛场内外那些事儿!〔给力〕7月28日LPL夏季赛今日比赛UP对战IG,BLG对战FPX,大家觉得是那两支队……国羽斩获第1冠!郑思维黄雅琼拒绝爆冷20零封大黑马,轰出90北京时间6月12日,国际羽联印尼大师赛正在进行。目前,五个单项决赛对阵已经全部出炉。国羽方面,只有男单选手无缘晋级决赛,其他四个单项均有运动员顺利晋级,冲击四项冠军。今天率先开……韦伯太空望远镜带来的震撼前所未见的宇宙神奇自2021年12月25日,詹姆斯韦伯太空望远镜成功发射升空以来,迄今为止,它所发回的图片向我们人类揭示了宇宙中的未知神奇场景,不啻于是献给地球最好的礼物。美国和欧洲等国的……大音希声打开耳朵听见荒野之声在视觉文化大行其道的今天,视频和图像时时扑面而来,令人应接不暇。听觉似乎失去了它的敏锐:闹钟到车鸣,语音到课件,领导指示到工作交流,我们的耳朵好像只需被动接受,提取关键信息就可……一篇好文章,用心之成果《樱花》愿我能把你忘记。樱花树下,漫地淡粉。春风微袭,一只只粉色的蝴蝶翻飞,落在了树下的这个沉思的少女身上。这一个孤单的身影一落落。落落从小就喜欢樱花,她觉得樱花很纯净,……重塑新生态T90EVEV90引领澳洲商业运输进入电动时代今年4月,一股惠灵顿风潮席卷澳新,T90EV新能源皮卡在经过新西兰交通部部长试驾后,就被当场纳入采购意向,用以作为新西兰公务用车的迭代车辆。紧接着,欧洲、澳新、南美等市场的大单……
利夫会服从教练的各项安排即使要打40分钟也会拼尽全力直播吧10月3日讯北京男篮近日举行了公开训练课,期间主教练解立彬以及部分队员接受了媒体的采访。解立彬谈到了外援利夫,表示这名内线已经加入合练,其在训练中的勤奋和努力得到了……登喜路是哪个国家的包包登喜路是奢侈品吗经常逛男装的小伙伴应该都知道登喜路这个品牌,登喜路主要是经营男装、男包、钱包等,那么登喜路是哪里的牌子??下面就来为大家介绍一下。登喜路是哪里的牌子登喜路是英国的牌……马思纯生日,圈内仅一人送祝福,生日真是娱乐圈人情冷暖的试水池3月14日是马思纯34岁的生日,马思纯在社交平台发自己的照片庆生,照片中马思纯一人坐在地上,身边没有鲜花,没有蛋糕,甚至只是日常的装扮,静悄悄的为自己过生日。都说生日是娱……2022年非洲球员薪资排行,马内超越萨拉赫,成为第一9、凯塔,13万镑凯塔1995年出生于几内亚,2018年6月,凯塔以5275万英镑的身价加盟英超利物浦足球俱乐部。加盟利物浦之后,凯塔一直是球队的替补,今年,凯塔获得更多……西施小姐姐尝尝小妲己的冰激凌,这也太可爱了叭小妲己把自己的冰激凌递给西施姐姐长尝,姐妹俩感情也太好了吧〔大笑〕〔大笑〕〔大笑〕〔爱慕〕西施和小妲己姐妹俩,手牵手,有奶茶一起喝,一起可爱一起萌萌萌(。)西施姐姐……小米超窄边框显示器399元超值价文周澄澄责编吕东兴总编唐迪小米产品,必出精品,这款redmi显示器,效率办公不卡顿,坚实品质购放心,到手价仅为399元。感兴趣的点击链接了解一下吧。FHD全高清画质……支持全波段收听,这款小巧的智能收音机,带标准usb接口玩法更拒绝参数,只谈体验,关注导盲犬小抠,真实解读您熟悉的数码产品,本文阅读预计耗时3分钟。收音机是人们日常生中最常见的小家电之一,随着科技发展技术进步,智能型收音机产品逐渐普……嘉兴房价四连跌,三万炒房客被套嘉兴楼市,嘉兴楼市分析第50期嘉兴房价跌破2万一平,嘉兴楼市10月房价跌至18701元。嘉兴房价现在跌得越来越明显了,嘉兴楼市很多之前需要绑定车位的新房楼盘,现在也不需要绑定车位了,只要愿意买房,甚至……走过了几十年的路,终于遇到你爱走过了几十年的路,终于遇到你!那一刻,我看到你带着充满期待的眼神,感觉我变得像小鸟一样展翅飞翔。当你笑容温暖地望向我时,我只能想说今生遇见你,是我今生最大的幸运。……黄河大集历城集美非遗年货节,寻找记忆中的年味儿为不断丰富传统节日文化内涵,寻找记忆中的年味儿,中共历城区委宣传部、区文化和旅游局、区融媒体中心倾力打造了黄河大集历城集美非遗年货节活动。1月12日,小年前夕,历城集美非……阿里巴巴公司的五个核心的模块阿里巴巴公司的五个核心的模块第一个模块,我们称之为零售体系,也就是最早的电子商务。这个体系以大淘宝作为核心,加上天猫、聚划算,以及B2B,零售体系是阿里巴巴所有业务的核心……哈啰顺风车车主在赣州接客被罚5000元!当地称平台未备案近日,哈啰顺风车车主罗先生从江西赣州返回广东揭阳期间,因通过平台接载了4名乘客,被赣州当地交警及交通运输部门查扣车辆。罗先生因未取得经营许可擅自从事网络预约出租汽车经营活动被罚……
友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形