UNPKG

test-tw-publish

Version:

描述

53 lines (49 loc) 1.5 kB
/* * @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; };