引入

import {
  extendUrlParams,
  filterUrlParams,
  formatUrlParams,
  decode,
  stringifyParams,
  addUrlParam,
  decode,
  stringifyParams,
  addUrlParam,
  addUrlParams,
  keepUrlParams,
  removeUrlParams,
  resolveUrlParams,
  getQueryObj,
  composeUrlQuery,
  encodeUrlParam,
  decodeUrlParam,
  getUrlPara
} from 't-comm';

// or
import {
  extendUrlParams,
  filterUrlParams,
  formatUrlParams,
  decode,
  stringifyParams,
  addUrlParam,
  decode,
  stringifyParams,
  addUrlParam,
  addUrlParams,
  keepUrlParams,
  removeUrlParams,
  resolveUrlParams,
  getQueryObj,
  composeUrlQuery,
  encodeUrlParam,
  decodeUrlParam,
  getUrlPara
} from 't-comm/lib/url/index';

# extendUrlParams(url, removeKeyArr)

描述

拼接额外参数

参数

参数名 类型 描述
url string

地址

removeKeyArr string

待添加的参数对象

返回:

重新拼接的地址

示例

const url1 = extendUrlParams('http://www.test.com?a=1&b=2&c=3#/detail?d=4', { e: 5 }); // 'http://www.test.com/#/detail?a=1&b=2&c=3&d=4&e=5'

# filterUrlParams([params])

描述

根据地址长度,进行过滤地址参数,允许指定保留特定参数

参数

参数名 类型 默认值 描述
[params] object { limit: 1024 }

参数

params.url number

待过滤地址,默认当前页面地址

params.limit number

参数长度限制

params.keepKey array

指定保留的参数,比如业务参数、框架参数(登录态、统计上报等)

# formatUrlParams(url, keepParamsObj)

描述

根据传入的参数,移除原来的所有参数,根据传入的 keepParamsObj 进行重新拼接地址,以 hash 模式返回

参数

参数名 类型 描述
url string

地址

keepParamsObj object

参数对象

返回:

只有传入参数的地址

示例

const url1 = formatUrlParams('http://www.test.com?a=1&b=2&c=3', { e: 5 }); // http://www.test.com/#/?e=5
const url2 = formatUrlParams('http://www.test.com?a=1&b=2&c=3#/detail?d=4', { f: 5 }); // http://www.test.com/#/detail?f=5

# decode(str)

描述

多重解码。避免内嵌在外部时地址参数被编码,先进行URL解码再进行HTML字符实体解码

Docgen:
参数

参数名 类型 描述
str string

文本

返回:

解码后的文本

# stringifyParams({)

描述

将参数对象转成字符串

Docgen:
参数

参数名 类型 描述
{ Object

params } 参数对象

# addUrlParam(url, key, value)

描述

小程序不支持URL对象,用字符串拼接方式添加 注意:已有相同key不支持覆盖,会重复添加

Docgen:
参数

参数名 描述
url

输入url

key

value

# decode(str)

描述

多重解码。避免内嵌在外部时地址参数被编码,先进行URL解码再进行HTML字符实体解码

Docgen:
参数

参数名 类型 描述
str string

文本

返回:

解码后的文本

# stringifyParams({)

描述

将参数对象转成字符串

Docgen:
参数

参数名 类型 描述
{ Object

params } 参数对象

# addUrlParam(url, key, value)

描述

小程序不支持URL对象,用字符串拼接方式添加 注意:已有相同key不支持覆盖,会重复添加

Docgen:
参数

参数名 描述
url

输入url

key

value

# addUrlParams(url, params, [shouldOverride])

描述

为url添加参数

参数

参数名 类型 默认值
url string
params object
[shouldOverride] boolean false

# keepUrlParams(url, removeKeyArr)

描述

除保留参数外,一律移除

参数

参数名 类型 描述
url string

地址

removeKeyArr string

待保留的参数名集合

返回:

重新拼接的地址

示例

const url = keepUrlParams('http://www.test.com?a=1&b=2&c=3#/detail?d=4', ['a', 'd']); // 'http://www.test.com/#/detail?a=1&d=4'

# removeUrlParams(url, removeKeyArr)

描述

移除参数

参数

参数名 类型 描述
url string

地址

removeKeyArr string

待移除的参数名集合

返回:

重新拼接的地址

示例

const url = removeUrlParams('http://www.test.com/#/detail?a=1&b=2&c=3', ['a', 'b']); // 'http://www.test.com/#/detail?c=3'
const url2 = removeUrlParams('http://www.test.com?d=4&f=6#/detail?a=1&b=2&c=3', ['a', 'd']); // 'http://www.test.com/#/detail?b=2&c=3&f=6'

# resolveUrlParams([url], [key])

描述

提取链接参数,兼容hash模式和history模式,以及拼接异常情况

参数

参数名 类型 默认值 描述
[url] string "''"

地址

[key] string "''"

可选,若不为空,则提取返回该key对应的参数值

返回:

地址参数对象,或者是指定参数值

示例

const url = 'https://igame.qq.com?name=mike&age=18#/index?from=china&home=china'
const params = resolveUrlParams(url); // { from: 'china', home: 'china', name: 'mike', age: 18 }
const paramsAge =  resolveUrlParams(url, 'age'); // 18

# getQueryObj(url)

描述

url参数变对象

参数

参数名 类型 描述
url string

输入URL

返回: Object

search对象

示例

const res = getQueryObj('https://igame.qq.com?name=mike&age=18&feel=cold&from=China');

console.log(res);
{
  name: 'mike',
  age: '18',
  feel: "cold",
  from: 'China',
}

# composeUrlQuery(url, queryObj)

描述

组装url参数,将search参数添加在后面

参数

参数名 类型 描述
url string

输入URL

queryObj Object

search对象

返回: string

组装后的url

示例

composeUrlQuery('https://baidu.com', {
  name: 'mike',
  feel: 'cold',
  age: '18',
  from: 'test',
});
// https://baidu.com?name=mike&feel=cold&age=18&from=test

composeUrlQuery('https://baidu.com?gender=male', {
  name: 'mike',
  feel: 'cold',
  age: '18',
  from: 'test',
});
// https://baidu.com?gender=male&name=mike&feel=cold&age=18&from=test

# encodeUrlParam(obj)

描述

将对象字符串化

参数

参数名 类型 描述
obj object

输入对象

返回: string

字符串

示例

encodeUrlParam({a: 1})

// '%7B%22a%22%3A1%7D'

# decodeUrlParam(obj)

描述

将字符串解码,与encodeUrlParam相对

参数

参数名 类型 描述
obj string

输入字符串

返回: object

对象

示例

decodeUrlParam('%7B%22a%22%3A1%7D')

// { a: 1 }

描述

获取 Url 参数

参数

参数名 类型 描述
paraName string

参数 key

search string

url search 部分

返回:

paraValue

示例

getUrlPara('gender', '?gender=male&name=mike&feel=cold&age=18&from=test')
// male

getUrlPara('age', '?gender=male&name=mike&feel=cold&age=18&from=test')
// 18
Last Updated: 2025/3/29 16:12:07