test-tw-publish
Version:
描述
53 lines (49 loc) • 1.5 kB
text/typescript
/*
* @Description:
* @Version: 1.0.0
* @Autor: zenghaoming
* @Date: 2023-11-01 14:36:06
* @LastEditors: zenghaoming
* @LastEditTime: 2023-11-06 13:18:50
*/
// 路由参数替换函数
export const replaceRouting = (routing: string, parameter: { [key: string]: string }) => {
for (const key in parameter) {
// 校验是否空
if (!key || !parameter[key]) continue;
const replaceValue = ':' + key;
// 校验routing中是否含有对应的占位符
if (routing.indexOf(replaceValue) === -1) continue;
// routing替换
routing = routing.replace(new RegExp(replaceValue, 'g'), parameter[key]);
}
return routing;
};
// 生成ID随机字符串
export const randomStr = (len = 6) =>
Math.random()
.toString(36)
.slice(2, len + 2)
.padEnd(len, Math.floor(Math.random() * 10) + '');
// 生成ID
export const createId = (group = 3, len = 6) => {
// 当前时间戳转36字符 + 随机生成的5位36进制字符 + 随机生成的5位36进制字符
let arr = [Date.now().toString(36)];
for (let i = group - 1; i >= 0; i--) {
arr.push(randomStr(len));
}
// 重新打乱数组顺序
arr = shuffle(arr);
//
return arr.join('-');
};
// 洗牌算法,随机打乱数组
export const shuffle = (arr: Array<any>) => {
for (let i = arr.length - 1; i >= 0; i--) {
const randomIndex = Math.floor(Math.random() * (i + 1));
const itemAtIndex = arr[randomIndex];
arr[randomIndex] = arr[i];
arr[i] = itemAtIndex;
}
return arr;
};