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

 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. c/c++ 指针函数 和 函数指针

    指针函数:返回指针类型的函数,定义方法如下: 类型标识符 *函数名(参数列表) 函数指针:指向函数入口地址的指针,定义方法如下: 类型标识符 (*指针名称)(形参列表) 下面我们通过一段代码加深我们的 ...

  2. Portswigger web security academy:DOM Based XSS

    Portswigger web security academy:DOM Based XSS 目录 Portswigger web security academy:DOM Based XSS DOM ...

  3. Day003 类型转换

    类型转换 由于java是强类型语言,所以要进行有些运算的时候,需要用到类型转换 ​ 低------------------------------------------------------> ...

  4. 【Redis】redis异步消息队列+Spring自定义注解+AOP方式实现系统日志持久化

    说明: SSM项目中的每一个请求都需要进行日志记录操作.一般操作做的思路是:使用springAOP思想,对指定的方法进行拦截.拼装日志信息实体,然后持久化到数据库中.可是仔细想一下会发现:每次的客户端 ...

  5. 三、postman持久化及批量运行

    一.设置环境变量 环境变量的引用为{{变量名}},运行脚本之前切记要在右上角选择对应脚本设置的环境变量后点击保存 二.设置全局变量 三.脚本导入导出及分享 1.导入脚本 2.导出脚本 3.分享脚本 四 ...

  6. 软件测试中的测试用例Test Case原来是这么回事!

    如果你去找一份功能测试的工作,在软件测试工程师面试过程中,有一些面试官会来一两个非常简单的问题 什么是Test Case?你是如何去写Test Case的? 我们先来看一下测试用例的介绍 什么是测试用 ...

  7. Identity Server4 数据迁移、持久化

    add-migration InitialPersistedGrantDb -c PersistedGrantDbContext -o Migrations/IdentityServer/Persis ...

  8. 痞子衡嵌入式:在i.MXRT启动头FDCB里使能串行NOR Flash的Continuous read模式

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是在FDCB里使能串行NOR Flash的Continuous read模式. 前面关于串行Flash传输时序的文章 <Fast R ...

  9. memcache 和 redis 的区别

    1)Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcache相比一个最大的区别.2)Redis在很多方面具备数据库的特征,或者说就是一个数据库系统,而Memcache只是简单的K/V ...

  10. Fio 输出内容的解释

    Fio 输出内容的解释 feilianbb 2016-01-11 16:18:54  27828  收藏 19 文章标签: Linux 存储 Fio SSD 性能   翻译原文来源 https://t ...