接收一个 URL 为参数,将 URL 中的查询信息,一对象的形式返回。如果有同一个查询信息有多个值,这些值将以数组的形式呈现。
const queryString = { parse: function (url) { if (!url) return null; let str = url.includes("?") ? url.split("?")[1] : url; let items = str.split("&"); let result = {} let arr = []; let i = 0; for (; i < items.length; i++) { arr = items[i].split('='); if (result[arr[0]]) { if (Array.isArray(result[arr[0]])) { result[arr[0]].push(arr[1]) } else { result[arr[0]] = [result[arr[0]], arr[1]] } } else { result[arr[0]] = arr[1]; }; }; return result; }, }; export default queryString;
使用:
import queryString from '@/utils/queryString'; queryString.parse('xxx?query=domain_group&query=domain_group1&query=domain_group2&query2=domain_group2') /* 返回值 { query: (3) ["domain_group", "domain_group1", "domain_group2"] query2: "domain_group2" } */