在网页上找了半天,发现现在的资源实在是少的可怜,而前端尤甚。所以没办法,于是自己花了一些时间写了一个;

 1 /**
2 * 删除URL中的指定参数
3 * @param {*} url
4 * @param {*} name
5 */
6 function delUrlParams(url, name){
7 //根据#号拆分
8 let poundArr = url.split('#')
9 //?拆分
10 let questionArr = []
11 if (poundArr) {
12 //把#接上
13 poundArr.forEach((element,index) => {
14 if(index>0){
15 element = '#'+ element
16 }
17
18 let tempArr = element.split('?')
19 if(!tempArr){
20 return true
21 }
22 tempArr.forEach((item, idx) => {
23 //保留问号
24 if (idx > 0) {
25 item = '?'+item
26 }
27 questionArr.push(item)
28 })
29 });
30 }else{
31 questionArr = url.split('?')
32 if (questionArr) {
33 questionArr.forEach((item, idx) => {
34 if (idx > 0) {
35 item = '?'+item
36 }
37 })
38 }
39 }
40
41 if(!questionArr){
42 return url
43 }
44
45 //&符号的处理
46 let andArr = []
47 questionArr.forEach((item,index) => {
48 let andIdx = item.indexOf('&')
49 if (andIdx <= -1) {
50 andArr.push(item)
51 return true
52 }
53
54 let tempAndArr = item.split('&')
55 tempAndArr.forEach((ele, idx) => {
56 if (idx > 0) {
57 ele = '&' + ele
58 }
59 andArr.push(ele)
60 })
61 })
62
63
64 let newUrl = ''
65 andArr.forEach(item => {
66 let nameIndex = item.indexOf(name+'=')
67 //不拼接要删除的参数
68 if (nameIndex > -1) {
69 //保留第一个问号
70 let questionIdx = item.indexOf('?')
71 if (questionIdx == 0) {
72 newUrl += '?'
73 }
74 return true
75 }
76 newUrl += item
77 })
78
79 return newUrl.replace(/\?\&/g,"?")
80 }

关于使用JS去除URL中的指定参数问题,js 对url进行某个参数的删除,并返回url的更多相关文章

  1. JS去除数组中重复值的四种方法

    JS去除数组中重复值的四种方法 1 /// <summary>            o[this[i]] = "";  }      }       newArr.p ...

  2. js去除字符串中的标签

    var str="<p>js去除字符串中的标签</p>"; var result=str.replace(/<.*?>/ig,"&qu ...

  3. JS获取url中的指定参数

    function GetRequest() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new O ...

  4. js去除字符串中所有html标签及&nbsp符号

    近日在做项目的时候,经常会在页面上处理一些数据.结果发现自己js掌握的并不是很好.那就在这里记录js的点点滴滴吧. 1. 去除字符串中的 html 标签 function delHtmlTag(str ...

  5. js 去除数组中的空值以及数组判断是否有重复数据

    1.判断是否有重复数据 function isRepeat(array){ var hash = {}; for(var i in array) { if(array[i]!="" ...

  6. JS 去除字符串中的空格

    1. 去掉字符串前后所有空格: 代码如下: function Trim(str) { return str.replace(/(^\s*)|(\s*$)/g, ""); } 说明: ...

  7. js替换字符串中所有指定的字符

    第一次发现JavaScript中replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符.  而str.replac ...

  8. js去除字符串中的空格

    //去除空格 function Trime(string){ return string.replace(/\s/ig,""); }

  9. js-修改url中某个指定的参数的值

    /* * url 目标url * arg 需要替换的参数名称 * arg_val 替换后的参数的值 * return url 参数替换后的url */ function changeURLArg(ur ...

随机推荐

  1. 推荐算法-聚类-K-MEANS

    对于大型的推荐系统,直接上协同过滤或者矩阵分解的话可能存在计算复杂度过高的问题,这个时候可以考虑用聚类做处理,其实聚类本身在机器学习中也常用,属于是非监督学习的应用,我们有的只是一组组数据,最终我们要 ...

  2. GIF图片裁剪出指定大小的GIF图片

    前言 最近在博客后台上传图片的时候,突然发现上传gif图片的时候裁剪图片有问题.既没法裁剪gif指定区域的图片,又没法裁剪指定区域生成一个新的指定大小的gif图.本来想直接去找个裁剪的库直接放上去的, ...

  3. QQ可以登录,网页无法访问

    之前以为是网络的问题,但是,后来发现QQ却可以登录,这是第二次碰到这个情况,所以总结一下 一般我们电脑上都会安装一个杀毒软件,比如火绒等等.我电脑上用的联想自带的电脑管家 我们可以在工具箱中找到网络诊 ...

  4. Java常见异常类型

    在Java学习过程中,我们会碰到各种各样的异常,现将面试过程中遇到的常见异常做一罗列并举例: 1.NullPointerException: 空指针异常.菜鸟编程经验发现这个异常是经常会发生的,属于运 ...

  5. 基于ray的分布式机器学习(二)

    基本思路:基于parameter server + multiple workers模式.同步方式:parameter server负责网络参数的统一管理,每次迭代均将参数发送给每一个worker,多 ...

  6. 通过Dapr实现一个简单的基于.net的微服务电商系统(十)——一步一步教你如何撸Dapr之绑定

    如果说Actor是dapr有状态服务的内部体现的话,那绑定应该是dapr对serverless这部分的体现了.我们可以通过绑定极大的扩展应用的能力,甚至未来会成为serverless的基础.最开始接触 ...

  7. Java 进行时间处理

    Java 进行时间处理 一.Calendar (1).Calender介绍 Calendar的中文翻译是日历,实际上,在历史上有着许多种计时的方法.所以为了计时的统一,必需指定一个日历的选择.那现在最 ...

  8. 拦截器(Interceptor)与过滤器(Filter)

    目录 用户的普通Http请求执行顺序 过滤器.拦截器添加后的执行顺序 拦截器(Interceptor)的基本定义 拦截器(Interceptor)必须实现的三个方法 单个拦截器(Interceptor ...

  9. TCP 中的两个细节点

    TCP 超时和重传 没有永远不出错误的通信,这句话表明着不管外部条件多么完备,永远都会有出错的可能.所以,在 TCP 的正常通信过程中,也会出现错误,这种错误可能是由于数据包丢失引起的,也可能是由于数 ...

  10. JEP 尝鲜系列 3 - 使用虚线程进行同步网络 IO 的不阻塞原理

    相关 JEP: JEP 353 Reimplement the Legacy Socket API JEP 373 Reimplement the Legacy DatagramSocket API ...