关于使用JS去除URL中的指定参数问题,js 对url进行某个参数的删除,并返回url
程序员文章站
2022-07-06 12:37:17
在网页上找了半天,发现现在的资源实在是少的可怜,而前端尤甚。所以没办法,于是自己花了一些时间写了一个; 1 /** 2 * 删除URL中的指定参数 3 * @param {*} url 4 * @param {*} name 5 */ 6 function delUrlParams(url, nam ......
在网页上找了半天,发现现在的资源实在是少的可怜,而前端尤甚。所以没办法,于是自己花了一些时间写了一个;
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 }
下一篇: 仿美团页面-订单页&“我的”页面