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