当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 关于使用JS去除URL中的指定参数问题,js 对url进行某个参数的删除,并返回url

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

2020年03月23日  | 移动技术网IT编程  | 我要评论
在网页上找了半天,发现现在的资源实在是少的可怜,而前端尤甚。所以没办法,于是自己花了一些时间写了一个; 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 }

 

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网