有一个字符串text
和一个关键字数组this.state.keywords
需要将XXX
行中的关键字替换为表格的表达式<span class = 'c0*'>XXX</span>
其中*
是一个从 1 到 4 的值(本质上是字典中关键字的编号模 4)
写了这段代码:
highlightText = (text: string) => {
let output: string = text;
let index: number = 0;
for (const keyword of this.state.keywords) {
output = output.replace(new RegExp(keyword, 'ig'), `<span class='c0${index % 4 + 1}'>${keyword}</span>`, );
index += 1;
}
return output;
}
对我来说,这是笨拙和多余的。
告诉我如何让它更优雅,有条件的它可以在几行内折叠
简而言之,这是可能的。
更容易阅读 - 像这样: