- 获取url中参数
export function fetchURLContainParams(url) {
const array = url.split('?')
if (array.length <= 1) {
return {}
} else {
const urlStr = array[1]
let obj = {};
let paramsArr = urlStr.split('&')
for (let i = 0, len = paramsArr.length; i < len; i++){
let arr = paramsArr[i].split('=')
obj[arr[0]] = arr[1];
}
return obj
}
}
- 检查url是否含有某个参数
const obj = fetchURLContainParams(url)
const res = Object.keys(obj).find(item => item === key)
return res && res !== 'undefined'
- 替换url中的参数内容
export function replaceURLParamVale(url, key, value) {
let obj = fetchURLContainParams(url)
let newURL = url.split('?')[0]
if (Object.keys(obj).length > 0) {
Object.keys(obj).forEach((item, index) => {
if (item === key) {
if (index === 0) {
newURL = newURL + "?" + key + "=" + value
} else {
newURL = newURL + "&" + key + "=" + value
}
} else {
if (index === 0) {
newURL = newURL + "?" + item + "=" + obj[item]
} else {
newURL = newURL + "&" + item + "=" + obj[item]
}
}
})
return newURL
} else {
return url;
}
}
- url地址添加参数
export function urlStringAppendParam(url, key, value) {
if (!url) {
return url
}
if (Object.keys(fetchURLContainParams(url)).length === 0) {
return url + "?" + key + "=" + value
} else {
if (checkURLContainParamValue(url, key)) {
return replaceURLParamVale(url, key, value)
} else {
return url + "&" + key + "=" + value
}
}
}
注: 仅在微信小程序环境下测试过