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

 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 }

最新文章

  1. Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network]
  2. mysql之旅【第一篇】
  3. Sphinx 2.2.6 window下安装全过程 未完 持续标记~~~~
  4. 使用html5的离线缓存技术
  5. Java Hour 11
  6. 第4章 管道与FIFO
  7. DHTMLX 前端框架 建立你的一个应用程序教程(一)
  8. Hql 子查询
  9. 机器学习( Machine Learning)的定义
  10. BOOTICE(引导扇区维护工具) V1.3.3 中文免费绿色版
  11. Augular JS里的各种ng
  12. C# 事务之SqlTransaction
  13. STM8驱动HX711
  14. samba服务断开某个用户 samba客户端断开自动登录
  15. Codeforces 1103 简要题解(持续更新)
  16. 网站测速、ping
  17. 20154312 曾林 Exp5_MSF基础应用
  18. IDEA下的第一个springBoot
  19. java 循环中使用list时,出现list中全部加入了对象导致没有实现分组的解决方案
  20. C语言:使用realloc函数对malloc或者calloc动态分配的内存大小进行扩展

热门文章

  1. 【springMVC】&lt;mvc:annotation-driven /&gt;标签的使用、作用?
  2. lombok,Invalid byte tag in constant pool: 19
  3. 【原创】简单解释一下,什么叫TLAB
  4. Zoho创始人斯瑞达.温布获评“年度最佳CEO”
  5. [Web] 网络安全(SSH SSL HTTPS)
  6. vmware快捷键大全
  7. NFS PersistentVolume(11)
  8. 010.Python字符串的格式化
  9. DOCKER学习_014:Docker存储补充
  10. 优秀电路资料--- IOT方案