关于使用JS去除URL中的指定参数问题,js 对url进行某个参数的删除,并返回url
2024-09-04 07:12:11
在网页上找了半天,发现现在的资源实在是少的可怜,而前端尤甚。所以没办法,于是自己花了一些时间写了一个;
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 }
最新文章
- Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network]
- mysql之旅【第一篇】
- Sphinx 2.2.6 window下安装全过程 未完 持续标记~~~~
- 使用html5的离线缓存技术
- Java Hour 11
- 第4章 管道与FIFO
- DHTMLX 前端框架 建立你的一个应用程序教程(一)
- Hql 子查询
- 机器学习( Machine Learning)的定义
- BOOTICE(引导扇区维护工具) V1.3.3 中文免费绿色版
- Augular JS里的各种ng
- C# 事务之SqlTransaction
- STM8驱动HX711
- samba服务断开某个用户 samba客户端断开自动登录
- Codeforces 1103 简要题解(持续更新)
- 网站测速、ping
- 20154312 曾林 Exp5_MSF基础应用
- IDEA下的第一个springBoot
- java 循环中使用list时,出现list中全部加入了对象导致没有实现分组的解决方案
- C语言:使用realloc函数对malloc或者calloc动态分配的内存大小进行扩展
热门文章
- 【springMVC】<;mvc:annotation-driven />;标签的使用、作用?
- lombok,Invalid byte tag in constant pool: 19
- 【原创】简单解释一下,什么叫TLAB
- Zoho创始人斯瑞达.温布获评“年度最佳CEO”
- [Web] 网络安全(SSH SSL HTTPS)
- vmware快捷键大全
- NFS PersistentVolume(11)
- 010.Python字符串的格式化
- DOCKER学习_014:Docker存储补充
- 优秀电路资料--- IOT方案