当前位置: 首页 > news >正文

js截取地址详细信息(除去省市区、市市区、自治区市区)

  • 解析地址字符串,严格匹配【省市区】、【市市区】、【自治区市区】格式
  • 格式要求:
    1. 省市区:XX省XX市XX区/县
    1. 市市区:XX市XX市XX区/县 (仅限直辖市)
    1. 自治区市区:XX自治区XX市XX区/县
  • 符合上述格式则返回剩余部分(乡镇/街道及以下),否则返回原地址
function parseAddress(address) {// 直辖市列表const municipalities = ['北京市', '天津市', '上海市', '重庆市'];// 严格匹配三种标准格式const strictRegex = /^((?<province>[^]+)(?<city>[^]+)(?<county>[^市县区旗]+(?:||))|  // 省市区格式(?<municipality>北京市|天津市|上海市|重庆市)(?<district>[^]+)(?<county2>[^市县区旗]+(?:||))|  // 市市区格式(仅限直辖市)(?<province2>.+自治区)(?<city2>[^]+)(?<county3>[^市县区旗]+(?:||)) // 自治区市区格式)(?<rest>.*)$/;// 检查地址中是否包含多个"省"或"自治区",如果是则直接返回原地址const provinceCount = (address.match(//g) || []).length;const autonomousRegionCount = (address.match(/自治区/g) || []).length;if (provinceCount > 1 || autonomousRegionCount > 1 || (provinceCount > 0 && autonomousRegionCount > 0)) {return address;}// 去除分隔符并合并连续空格const normalizedAddr = address.replace(/[^\u4e00-\u9fa50-9a-zA-Z]/g, '');const match = strictRegex.exec(normalizedAddr);if (match?.groups) {// 检查匹配的是哪种格式const isProvinceFormat = match.groups.province && match.groups.city && match.groups.county;const isMunicipalityFormat = match.groups.municipality && match.groups.district && match.groups.county2;const isAutonomousFormat = match.groups.province2 && match.groups.city2 && match.groups.county3;// 仅当完全匹配标准格式时才处理if (isProvinceFormat || isMunicipalityFormat || isAutonomousFormat) {// 对于市市区格式,确保第一个市是直辖市if (isMunicipalityFormat && !municipalities.includes(match.groups.municipality)) {return address;}return match.groups.rest || '';}}return address;
}
http://www.lqws.cn/news/525547.html

相关文章:

  • python3虚拟机线程切换过程
  • 企业级混合云平台,信息安全基础技术方案
  • WinAppDriver 自动化测试:Python篇
  • Docker环境搭建和docker性能监控
  • CTF Writeup: [强网杯 2019]随便注挑战解析
  • 分布式系统 - 分布式缓存及方案实现
  • Python 数据分析与可视化 Day 7 - 可视化整合报告实战
  • 【nRF52832】【环境搭建 1】【ubuntu下搭建nRF52832开发环境】
  • 达梦数据库安装
  • 《高等数学》(同济大学·第7版)第九章 多元函数微分法及其应用第一节多元函数的基本概念
  • Fisco Bcos学习 - 搭建并行多组组网
  • SQL关键字三分钟入门:DELETE —— 删除数据
  • 定位坐标系深度研究报告
  • C++学习笔记--Chapter Two--类的定义、对象的创建和使用、构造函数
  • 《解锁前端潜力:自动化流程搭建秘籍》
  • python学智能算法(十六)|机器学习支持向量机简单示例
  • HarmonyOS5 折叠屏适配测试:验证APP在展开/折叠状态下的界面自适应,以及会出现的问题
  • 数组题解——二分查找【LeetCode】
  • 八股文——JAVA基础:说一下C++与java的区别
  • 黑马python(十六)
  • GBDT:梯度提升决策树——集成学习中的预测利器
  • 设计模式-桥接模式、组合模式
  • Selenium 二次封装通用页面基类 BasePage —— Python 实践
  • 矩阵题解——螺旋矩阵【LeetCode】
  • 大模型推理-高通qnn基础
  • PYTHON从入门到实践5-列表操作
  • 超级好用的小软件:geek,卸载软件,2m大小
  • vue2简单的路由切换
  • OpenCV图像旋转:单点旋转与图片旋转
  • Windows10中设置多个虚拟IP方法