UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

30 lines (27 loc) 971 B
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 };