先看效果:
實(shí)現(xiàn)很簡單通過以下這個(gè)函數(shù):
highLight = (text, keyword ) => {
return text.split(keyword).flatMap(str => [<span style={{ color: 'red', fontWeight: 'bold' }}>{keyword}</span>, str]).slice(1);
}
展示某段文本時(shí)調(diào)用該函數(shù)處理后,在展示就能實(shí)現(xiàn)高亮效果
原理是:
這個(gè)函數(shù)的作用是在給定的文本中,將指定的關(guān)鍵字進(jìn)行高亮標(biāo)記。它接受兩個(gè)參數(shù):text(要處理的文本)和 keyword(要高亮標(biāo)記的關(guān)鍵字)。
函數(shù)首先使用 split() 方法將文本按照關(guān)鍵字進(jìn)行拆分,生成一個(gè)字符串?dāng)?shù)組。然后通過 flatMap() 方法遍歷數(shù)組,并在每個(gè)關(guān)鍵字的前面插入一個(gè)用 標(biāo)簽包裹的標(biāo)記,設(shè)置其樣式為紅色并加粗。最后,使用 slice(1) 方法去掉第一個(gè)空字符串元素,并返回一個(gè)新的數(shù)組。
這樣,當(dāng)你調(diào)用 highLight(text, keyword) 函數(shù)時(shí),它將返回一個(gè)包含了高亮標(biāo)記的文本數(shù)組。你可以在渲染頁面時(shí)使用該數(shù)組來展示高亮的效果,將每個(gè)元素渲染為 HTML 內(nèi)容,從而實(shí)現(xiàn)對(duì)指定關(guān)鍵字的高亮顯示。文章來源:http://www.zghlxwxcb.cn/news/detail-643944.html
參考了該篇博客的做法:https://juejin.cn/post/7088345637401395236文章來源地址http://www.zghlxwxcb.cn/news/detail-643944.html
到了這里,關(guān)于React實(shí)現(xiàn)關(guān)鍵字高亮的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!