t-comm
Version:
专业、稳定、纯粹的工具库
30 lines (27 loc) • 971 B
JavaScript
import { formatUrlParams } from './format-url-params.mjs';
import { resolveUrlParams } from './resolve-url-params.mjs';
/**
* 除保留参数外,一律移除
* @param {string} url 地址
* @param {string} removeKeyArr 待保留的参数名集合
* @returns 重新拼接的地址
* @example
* 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'
*/
function keepUrlParams(url, keepKeyArr, forceHistoryMode) {
if (url === void 0) {
url = '';
}
// 获取链接上的所有参数
var urlParamsObj = resolveUrlParams(url);
// 只保留指定的key集合
var keepParamsObj = {};
Object.keys(urlParamsObj).forEach(function (key) {
if (keepKeyArr.includes(key)) {
keepParamsObj[key] = urlParamsObj[key];
}
});
// 根据移除后的参数集合,重新拼接地址
return formatUrlParams(url, keepParamsObj, forceHistoryMode);
}
export { keepUrlParams };