删除url地址字符串的某个参数

news/2024/7/19 14:51:00 标签: js

例如,删除url的token参数
删除前:http://xxxxxxxx/#/dynamic?token=4654561654asd4asd&id=03e657722d5056820c5f&cityName=广州市
删除后:http://xxxxxxxx/#/dynamic?id=03e657722d5056820c5f&cityName=广州市

/**
     * 删除URL中指定search参数,会将参数值一起删除
     * @param {string} url 地址字符串
     * @param {array} param 要删除的参数key数组,如['name','age']
     * @return {string} 返回新URL字符串
     */
    ridUrlParam(url, params) {
      for (var index = 0; index < params.length; index++) {
        var item = params[index];
        //必须加=号,避免参数值中包含item字符串
        var fromIndex = url.indexOf(item + "="); 
        if (fromIndex !== -1) {
          // 通过url特殊符号,计算出=号后面的的字符数,用于生成replace正则
          var startIndex = url.indexOf("=", fromIndex);
          var endIndex = url.indexOf("&", fromIndex);
          var hashIndex = url.indexOf("#", fromIndex);
    
          var reg = "";
          if (endIndex !== -1) {
            // 后面还有search参数的情况
            var num = endIndex - startIndex;
            reg = new RegExp(item + "=.{" + num + "}");
            url = url.replace(reg, "");
          } else if (hashIndex !== -1) {
            // 有hash参数的情况
            var num = hashIndex - startIndex - 1;
            reg = new RegExp("&?" + item + "=.{" + num + "}");
            url = url.replace(reg, "");
          } else {
            // search参数在最后或只有一个参数的情况
            reg = new RegExp("&?" + item + "=.+");
            url = url.replace(reg, "");
          }
        }
      }
      var noSearchParam = url.indexOf("=");
      if (noSearchParam === -1) {
        // 如果已经没有参数,删除?号
        url = url.replace(/\?/, ""); 
      }
      return url;
    }

http://www.niftyadmin.cn/n/5099698.html

相关文章

TikTok引领时尚浪潮:社交平台如何塑造大众文化?

时尚是一个永恒的话题&#xff0c;但它的定义一直在不断演变。随着社交媒体的崛起&#xff0c;时尚已经不再是由少数权威品牌和名人主导的领域。现在&#xff0c;时尚已经变得更加多元化&#xff0c;平民化&#xff0c;而社交媒体平台TikTok已经崭露头角&#xff0c;成为引领时…

VSCode修改扩展和用户文件夹目录位置(Windows)

VSCode修改扩展和用户文件夹目录位置&#xff08;Windows&#xff09; 前言&#xff1a;方法前期准备&#xff1a;方法1&#xff08;强推荐&#xff09;方法2&#xff08;不太推荐&#xff09;方法3&#xff08;好麻烦&#xff0c;不太推荐&#xff09; 前言&#xff1a; VSCod…

22款奔驰S450L升级主动式氛围灯 提升安全提示 又好看

主动式氛围灯有263个可多色渐变的LED光源&#xff0c;营造出全情沉浸的动态光影氛围。结合智能驾驶辅助系统&#xff0c;可在转向或检测到危险时&#xff0c;予以红色环境光提示&#xff0c;令光影艺术彰显智能魅力。配件有6个氛围灯&#xff0c;1个电脑模块。Xjh15863 了解更多…

《开箱元宇宙》:《福布斯》如何通过 Web3 改进讲故事的方式

你们是否想知道 The Sandbox 如何融入世界上最具标志性的品牌和名人的战略&#xff1f;在本期《开箱元宇宙》系列中&#xff0c;我们与《福布斯》一起探讨了他们为何决定在 The Sandbox 中尝试 Web3&#xff0c;以及他们如何改变讲故事的方式&#xff0c;以便在一次体验中吸引超…

Samba共享软链接以及ln命令的用法

起因&#xff1a; 之前公司的资料是按照业务类型来进行存储的&#xff0c;也就是 业务→客户名称 这种目录结构。由于许多业务会用到相同的资料&#xff0c;例如&#xff1a;营业执照、审计报告等&#xff0c;每一个业务都复制一个副本&#xff0c;会造成重复资料巨多&#xf…

车载视频如何转换视频格式

当你收集了多种视频想在车内进行播放&#xff0c;它们可能不会自动播放。你有可能会在屏幕上看到一条消息&#xff0c;显示“文件格式不受支持”&#xff0c;这是因为这些视频可能采用了你的汽车无法识别的格式。 那我们如何才可以转换为车载播放器上运行的最重要且最广泛使用…

13JVM进阶

说一下 JVM 有哪些垃圾回收器&#xff1f; Serial&#xff1a;最早的单线程串行垃圾回收器。 Serial Old&#xff1a;Serial 垃圾回收器的老年版本&#xff0c;同样也是单线程的&#xff0c;可以作为 CMS 垃圾回收器的备选预案。 ParNew&#xff1a;是 Serial 的多线程版本。 …

软件工程与计算总结(十七)软件构造

一.概述 1.定义 软件构造是以编程为主的活动&#xff0c;类似于软件实现。但软件构造又不止编程这么简单&#xff0c;除了核心的编程任务之外&#xff0c;还设计详细设计&#xff08;数据结构与算法设计&#xff09;、单元测试、集成与集成测试以及其他活动~ 2.软件构造是设计…