动态拼接或修改指定的url地址参数和参数值

参数定义:

  • url: url地址参数;
  • params:需要拼接或修改的参数对象列表
/**
 * 给url后面动态拼接参数或修改参数
 * @param url
 * @param params
 */
function changeURLArg(url, params) {
  let resUrl = url || ''
  if (url && params) {
    Object.keys(params).forEach((key, index) => {
      if (params[key]) {
        const regExp = new RegExp(`(${key}=)([^&]*)`, 'ig')
        if (regExp.test(resUrl)) {
          resUrl = resUrl.replace(regExp, `${key}=${params[key]}`)
        } else {
          let splitStr = '&'
          if (index === 0) {
            if (url.indexOf('?') === -1) {
              splitStr = '?'
            }
          }
          resUrl += `${splitStr}${key}=${params[key]}`
        }
      }
    })
  }
  return resUrl
}

示例如下:

const url = 'https://www.jianshu.com?a=2'
const params = {
  a: 1,
  b: 2
}
const newUrl = changeURLArg(url, params) // https://www.jianshu.com?a=1&b=2
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容