JS實(shí)現(xiàn)關(guān)鍵詞高亮顯示正則匹配
html 和ajax 部分就不寫(xiě)了,只需將需要匹配的文字傳進(jìn)去就可以了
比如匹配后臺(tái)傳回的字符串data.content中的關(guān)鍵詞:直接調(diào)用:
data.content = highLightKeywords(data.content,keywords)即可
以下兩個(gè)函數(shù)分辨是匹配1:匹配關(guān)鍵詞words中每一個(gè)字符,2:匹配整個(gè)關(guān)鍵詞words
//高亮關(guān)鍵字 text =>內(nèi)容 words:關(guān)鍵詞 tag 被包裹的標(biāo)簽
//匹配每一個(gè)關(guān)鍵字字符
function highLightKeywords(text, words, tag) {
tag = tag || 'span';// 默認(rèn)的標(biāo)簽,如果沒(méi)有指定,使用span
var i, len = words.length, re;
for (i = 0; i < len; i++) {
// 正則匹配所有的文本
re = new RegExp(words[i], 'g');
if (re.test(text)) {
text = text.replace(re, '<'+ tag +' class="highlight">$&</'+ tag +'>');
}
}
}
return text;
}
//匹配整個(gè)關(guān)鍵詞 不拆分
function highlight(text, words, tag) {
// 默認(rèn)的標(biāo)簽,如果沒(méi)有指定,使用span
tag = tag || 'span';
var i, len = words.length,
re;
//匹配每一個(gè)特殊字符 ,進(jìn)行轉(zhuǎn)義
var specialStr = ["*", ".", "?", "+", "$", "^", "[", "]", "{", "}", "|", "\\", "(", ")", "/", "%"];
$.each(specialStr, function(i, item) {
if(words.indexOf(item) != -1) {
words = words.replace(new RegExp("\\" + item, 'g'), "\\" + item);
}
});
//匹配整個(gè)關(guān)鍵詞
re = new RegExp(words, 'g');
if(re.test(text)) {
text = text.replace(re, '<' + tag + ' class="highlight">$&</' + tag + '>');
}
return text;
}
總結(jié)
以上所述是小編給大家介紹的JS實(shí)現(xiàn)關(guān)鍵詞高亮顯示正則匹配,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
js實(shí)現(xiàn)div模擬模態(tài)對(duì)話(huà)框展現(xiàn)URL內(nèi)容
這篇文章主要介紹了js實(shí)現(xiàn)div模擬模態(tài)對(duì)話(huà)框展現(xiàn)URL內(nèi)容的功能,涉及javascript動(dòng)態(tài)操作頁(yè)面元素樣式與ajax調(diào)用的相關(guān)技巧,需要的朋友可以參考下2016-05-05
Router解決跨模塊下的頁(yè)面跳轉(zhuǎn)示例
開(kāi)始模塊化開(kāi)發(fā)項(xiàng)目之后,一個(gè)很重要的問(wèn)題就是頁(yè)面見(jiàn)的跳轉(zhuǎn)問(wèn)題,這篇文章主要介紹了Router解決跨模塊下的頁(yè)面跳轉(zhuǎn)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
js每隔5分鐘執(zhí)行一次ajax請(qǐng)求的實(shí)現(xiàn)方法
每隔5分鐘執(zhí)行一次ajax請(qǐng)求,如何實(shí)現(xiàn)?下面有個(gè)不錯(cuò)的示例,感興趣的朋友可以參考下2013-11-11
js實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)動(dòng)態(tài)時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
JavaScript常見(jiàn)數(shù)組方法之如何轉(zhuǎn)置矩陣
這篇文章主要給大家介紹了關(guān)于JavaScript常見(jiàn)數(shù)組方法之如何轉(zhuǎn)置矩陣的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-03-03
JavaScript判斷輸入值是否為正整數(shù)(判斷變量為數(shù)字)
在項(xiàng)目開(kāi)發(fā)中,有時(shí)候需要使用JavaScript驗(yàn)證用戶(hù)輸入的是否為正整數(shù),這篇文章主要給大家介紹了關(guān)于JavaScript判斷輸入值是否為正整數(shù)(判斷變量為數(shù)字)的相關(guān)資料,需要的朋友可以參考下,2023-11-11

