77 lines
1.6 KiB
TypeScript
77 lines
1.6 KiB
TypeScript
/*
|
||
* @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 }; |