zoukankan      html  css  js  c++  java
  • 关于使用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 }
  • 相关阅读:
    常用DOS命令
    Intellij IDEA debug断点调试技巧与总结详解篇
    IDEA中常用函数的快捷键及自定义方法模板
    System.out.println()的真实含义
    盘点一下Github上开源的编程面试/学习相关的仓库
    IntelliJ IDEA
    JAVA基础——接口(全网最详细教程)
    Css基础
    CSS属性(根据继承性分为两类)
    HTML5新增标签(新增27个标签,废弃16个标签)
  • 原文地址:https://www.cnblogs.com/eccpig/p/12546710.html
Copyright © 2011-2022 走看看