搜索關(guān)鍵字高亮顯示

在項(xiàng)目開(kāi)發(fā)過(guò)程中遇到日志搜索高亮顯示關(guān)鍵字的需求:
本文采用數(shù)組方法reduce實(shí)現(xiàn)颖榜。


reduce簡(jiǎn)介:

語(yǔ)法

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

參數(shù):

參數(shù) 描述
function(total,currentValue, index,arr) 必需。用于執(zhí)行每個(gè)數(shù)組元素的函數(shù)属韧。
initialValue 可選。傳遞給函數(shù)的初始值

函數(shù)參數(shù):

參數(shù) 描述
total 必需蛤吓。初始值, 或者上一輪計(jì)算結(jié)束后的返回值宵喂。
currentValue 必需。當(dāng)前元素(值)
index 可選会傲。當(dāng)前元素(值)的索引
arr 可選锅棕。當(dāng)前元素(值)所屬的數(shù)組對(duì)象。

注意:如果initialValue不傳唆铐,函數(shù)的total參數(shù)會(huì)默認(rèn)為數(shù)組的第一個(gè)元素(值)哲戚,index會(huì)從1開(kāi)始

需求實(shí)現(xiàn)思路:
通過(guò)忽略大小寫的搜索關(guān)鍵字把日志文本拆分為一個(gè)數(shù)組,再利用忽略大小寫的正則匹配出原始文本中的符合要求的值(匹配生成為一個(gè)數(shù)組)艾岂,再利用reduce把高亮后的匹配出的關(guān)鍵字按順序插入到原本應(yīng)該在的位置顺少,成高亮后的日志文本。

實(shí)現(xiàn)代碼:

const searchKeyword = new RegExp(value,'ig');//value為輸入的值王浴,用正則轉(zhuǎn)換成忽略大小
//data為文本內(nèi)容脆炎,用忽略了大小寫的搜索關(guān)鍵字把文本內(nèi)容拆分為數(shù)組,再把高亮后的搜索關(guān)鍵字插入數(shù)組
data.split(searchKeyword).reduce((prevResult,current_item,index)=>{
//下述的[index-1]氓辣,根據(jù)上述的注意秒裕,沒(méi)有傳遞初始值,index是從1開(kāi)始
  return (
     <span>
       <span>{prevResult}</span>
       <span className={styles.highLight}>{data.match(searchKeyword)[index-1]}</span>
       <span>{current_item}</span>
     </span>
  )
})
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末钞啸,一起剝皮案震驚了整個(gè)濱河市几蜻,隨后出現(xiàn)的幾起案子喇潘,更是在濱河造成了極大的恐慌,老刑警劉巖梭稚,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颖低,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡弧烤,警方通過(guò)查閱死者的電腦和手機(jī)忱屑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)暇昂,“玉大人莺戒,你說(shuō)我怎么就攤上這事〖辈ǎ” “怎么了从铲?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)澄暮。 經(jīng)常有香客問(wèn)我食店,道長(zhǎng),這世上最難降的妖魔是什么赏寇? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮价认,結(jié)果婚禮上嗅定,老公的妹妹穿的比我還像新娘。我一直安慰自己用踩,他們只是感情好渠退,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著脐彩,像睡著了一般碎乃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惠奸,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天梅誓,我揣著相機(jī)與錄音,去河邊找鬼佛南。 笑死梗掰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的嗅回。 我是一名探鬼主播及穗,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼绵载!你這毒婦竟也來(lái)了埂陆?” 一聲冷哼從身側(cè)響起苛白,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎焚虱,沒(méi)想到半個(gè)月后购裙,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡著摔,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年缓窜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谍咆。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡禾锤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出摹察,到底是詐尸還是另有隱情恩掷,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布供嚎,位于F島的核電站黄娘,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏克滴。R本人自食惡果不足惜逼争,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望劝赔。 院中可真熱鬧誓焦,春花似錦、人聲如沸着帽。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)仍翰。三九已至赫粥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間予借,已是汗流浹背越平。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蕾羊,地道東北人喧笔。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像龟再,于是被迫代替她去往敵國(guó)和親书闸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354