Spaces:
Sleeping
Sleeping
export const getQueryString = (search: string, name: string) => { | |
if (!search) return ''; | |
const reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`); | |
const result = search.substring(1).match(reg); | |
if (result != null) return result[2]; | |
return ''; | |
}; | |
export const isInWhiteList = (url = '', list: string[] = []) => { | |
const baseUrl = url.split('?')[0]; | |
for (const whiteApi of list) { | |
if (baseUrl.endsWith(whiteApi)) { | |
return true; | |
} | |
} | |
return false; | |
}; | |
export const mergeReplaceToDiv = (str: string) => { | |
// 优化后的正则表达式,使用非捕获组和正向断言来确保匹配的是连续的[[数字]]序列 | |
const regexOptimized = /\[\[(\d+)\]](?:\s*\[\[(\d+)\]])*/g; | |
// 替换函数(优化版),直接处理整个匹配到的字符串 | |
function replaceWithDivSpanOptimized(match: any) { | |
// 提取出所有数字,由于我们已经知道匹配的是连续的[[数字]]序列,所以可以直接分割字符串 | |
const numbers = match | |
.slice(2, -2) | |
.split(']][[') | |
.map((num: any) => parseInt(num, 10)); | |
return `<span class="mergeQuo" data-ids="${numbers.toString()}">${numbers.map((num: number) => `<span>${num}</span>`).join('')}</span>`; | |
} | |
// 使用优化后的正则表达式和替换函数处理Markdown字符串 | |
const resultOptimized = str.replace(regexOptimized, replaceWithDivSpanOptimized); | |
return resultOptimized; | |
}; | |
export const replaceStr = (str: string) => { | |
return str.replace(/\[\[(\d+)\]\]/g, (match: any, number: any) => { | |
// 创建一个带有class为'f'的span元素,并将数字作为文本内容 | |
return `<i class='f custom'>${number}</i>`; | |
}); | |
}; | |