首页 > 其他分享 >自动拆分出地址中的省市区

自动拆分出地址中的省市区

时间:2023-05-27 17:34:54浏览次数:60  
标签:province const district 地址 let 拆分 address 省市区 match

            //  识别 地址的方法
            splitAddressInfo(address) {
                address = address.replace(/[^\u4E00-\u9FA5a-zA-Z0-9]/g, '');
                const nameRegex = /(.+?)(\d+)/;
                const contactRegex = /(\d{11})/;
                const regionRegex = /(.*?[省市区县])(.*?[市区县])(.*)/;
                const districtRegex = /(.*?[区县])(.*)/;
                const provinceRegex = /(.*?[省市自治区])(.*)/;

                let name = '';
                let addressText = '';
                let contact = '';
                let province = '';
                let city = '';
                let district = '';
                let detailedAddress = '';

                const nameMatch = address.match(nameRegex);
                if (nameMatch && nameMatch.length >= 3) {
                    name = `${nameMatch[1]}`;
                }

                const contactMatch = address.match(contactRegex);
                if (contactMatch && contactMatch.length >= 2) {
                    contact = contactMatch[1];
                }

                const regionMatch = address.match(regionRegex);
                if (regionMatch && regionMatch.length >= 4) {
                    province = regionMatch[1];
                    city = regionMatch[2];
                    district = regionMatch[3];
                }

                const districtMatch = district.match(districtRegex);
                if (districtMatch && districtMatch.length >= 3) {
                    district = districtMatch[1];
                    detailedAddress = districtMatch[2];
                }

                const provinceMatch = address.match(provinceRegex);
                if (provinceMatch && provinceMatch.length >= 3) {
                    province = provinceMatch[1];
                    detailedAddress = provinceMatch[2];
                }

                addressText = address
                    .replace(nameRegex, '')
                    .replace(contactRegex, '')
                    .replace(regionRegex, '')
                    .replace(districtRegex, '')
                    .replace(provinceRegex, '')
                    .trim();
                // 拆出区后面地址的正则
                const detailAddressRegexy = new RegExp(`${province}${city}${district}(.*)`);
                const match1 = address.match(detailAddressRegexy);
                //  拆出省份 的正则
                const provinceRegexs = /([\u4e00-\u9fa5]{2,}(?:省|市|自治区|特别行政区))/;
                const match = province.match(provinceRegexs);
                province = match[1]
                // console.log(match1);
                this.name = name
                this.phone = contact
                this.province = province
                this.city = city
                this.district = district
                this.addressXI = province + '-' + city + '-' + district
                this.xingxi = match1[1]
            },

然后可以根据自己实际场景,进行修改,主要用于快递地址自动识别,上面方法写的比较笼统,个人可以在原有上进行二次封装开发

标签:province,const,district,地址,let,拆分,address,省市区,match
From: https://www.cnblogs.com/yangjunp/p/17437062.html

相关文章

  • Python实现将Excel表格按某列拆分为多个sheet
    <生信交流与合作请关注公众~号@生信探索>实际数据分析中遇到需求,把某个Excel表格按照某一列分为多个sheet,并且要求如果某个key对应的行数较少应该合并到一个sheet中。importpandasaspdimportbioquestasbq#https://jihulab.com/BioQuest/bioquest从网上找随便了个数据......
  • java怎么打印一个对象的内存地址
    在Java一般使用HashCode来代表对象的地址,但是两个相同的对象就不行了,两个相同的对象的hashcode是相同的。  如果要对比两个相同的对象的地址可以使用,System.identityHashCode(传输进去的参数是一个对象)......
  • java程序自动获取IP地址
    /***获取IP地址的方法*@paramrequest传一个request对象下来*@return*/publicstaticStringgetIpAddress(HttpServletRequestrequest){Stringip=request.getHeader("x-forwarded-for");if(ip==null||ip.length(......
  • 清华大学开源软件镜像站 常用下载地址
    https://mirrors.tuna.tsinghua.edu.cn/常用发行版isohttps://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.4/rhel/7/x86_64/zabbix域名选择https://mirrors.tuna.tsinghua.edu.cn自动选择https://mirrors6.tuna.tsinghua.edu.cn只解析IPv6https://mirrors4.tuna.tsinghu......
  • 一口气Ping1000个IP地址,会发生什么事情?
    ping命令是我们检查网络中最常用的命令,作为网络人员,基本上每天都会用到,可以很好地帮助我们分析和判定网络故障,对吧? 一般来说,网工们用ping查看网络情况,主要是检查两个指标: 第一个是看看是不是超时第二个看看是不是延迟太高 我做个假设啊,如果,你今天需要负责10台设......
  • Ubuntu下查看IP地址
    1.默认安装不能使用ifconfig命令进行查看IP地址,使用命令: sudoapt-getinstallnet-tools进行安装;2.安装完毕后即可使用ifconfig命令,如下图,红色矩形框中的即为IP地址:......
  • 基于Qt的音乐播放器(三)通过酷狗音乐的api接口,返回json格式歌曲信息(播放地址,歌词,图片)
    2020博客之星年度总评选进行中:请为74号的狗子投上宝贵的一票!我的投票地址:点击为我投票文章目录前言1.获取歌曲搜索列表api接口2.获取单个歌曲详细信息包括歌词3.总结前言首先说明,本教程仅供个人学习,研究使用,禁止用于任何的商业和非法用途。(手动狗头)之所以要研究这个,是因为我想......
  • Linux配置各种yum源地址,阿里、清华、网易.....
    Linux配置各种yum源地址,阿里、清华、网易.....各种源地址汇总:https://developer.aliyun.com/article/869790国外的yum源访问速度较慢,一般情况下建议替换成国内的免费yum源。国内提供了不少优秀的yum源,例如:•搜狐开源镜像站:http://mirrors.sohu.com/•网易开源镜像站:http://......
  • [Error 10048] error while attempting to bind on address (‘127.0.0.1‘, 8000):
    今天运行程序的时候碰到了这么个问题,因为之前也遇到过这种情况,那时找不到原因重启电脑这方法偶尔能解决,今天就不行了,电脑又没有看到明显的占用这个端口的程序。所以查找资料从根源出发解决。解决方法是:1.进入命令行(以管理员身份)2.输入netstat-aon|findstr"8000"查找8000端......
  • 微服务框架SpringCloud-2-服务拆分及远程调用-2.2服务远程调用
    微服务框架SpringCloud2服务拆分及远程调用2.2服务远程调用2.2.1根据订单id查询订单功能需求:根据订单id查询订单的同时,把订单所属的用户信息一起返回现在是不能做到的, 可以看到现在user是个null【所以没有达到需求】现在的情况是下面的样子  但是需求想要的......