/* * @Author: Kane * @Date: 2023-02-28 19:30:40 * @LastEditors: Kane * @FilePath: /后端辅助工具/src/utils/url.ts * @Description: * * Copyright (c) ${2022} by Kane, All Rights Reserved. */ /** * 将url的参数拆分成对象 * @param url 访问的url * @returns */ function getURLParams(url: string) { const arr = url.split("?"); const params = arr[1].split("&"); const obj = {}; for (let i = 0; i < params.length; i++) { const param = params[i].split("="); obj[param[0]] = param[1]; } return obj; } function getParamsFromURL(url: string) { const indexOfQuestionMark: number = url.indexOf("?"); const indexOfSharp: number = url.indexOf("#"); const paramObj = {}; let paramString; //url中没有问号,说明没有参数 if (indexOfQuestionMark < 0) { return paramObj; } //检查是否有#号 if (indexOfSharp < 0) { //没有#号,可以直接截取参数字符串 paramString = url.substring(indexOfQuestionMark); } else { //有#号,需要排除掉#的内容 const end: number = indexOfQuestionMark < indexOfSharp ? indexOfSharp : url.length; paramString = url.substring(indexOfQuestionMark + 1, end); } //拆分属性 const paramArray: string[] = paramString.split("&"); paramArray.forEach((item) => { if (item.length == 0) { return; } const param = item.split("="); paramObj[param[0]] = param[1] || ""; }); return paramObj; } export { getURLParams, getParamsFromURL };