關於使用JS去除URL中的指定參數問題,js 對url進行某個參數的刪除,並返回url


在網頁上找了半天,發現現在的資源實在是少的可憐,而前端尤甚。所以沒辦法,於是自己花了一些時間寫了一個;

 

 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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM