html 和ajax 部分就不寫了,只需將需要匹配的文字傳進去就可以了
成都創(chuàng)新互聯(lián)是一家專業(yè)提供濱海企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、H5建站、小程序制作等業(yè)務(wù)。10年已為濱海眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進行中。
比如匹配后臺傳回的字符串data.content
中的關(guān)鍵詞:直接調(diào)用:
data.content = highLightKeywords(data.content,keywords)
即可
以下兩個函數(shù)分辨是匹配1:匹配關(guān)鍵詞words中每一個字符,2:匹配整個關(guān)鍵詞words
//高亮關(guān)鍵字 text =>內(nèi)容 words:關(guān)鍵詞 tag 被包裹的標簽 //匹配每一個關(guān)鍵字字符 function highLightKeywords(text, words, tag) { tag = tag || 'span';// 默認的標簽,如果沒有指定,使用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; }
//匹配整個關(guān)鍵詞 不拆分 function highlight(text, words, tag) { // 默認的標簽,如果沒有指定,使用span tag = tag || 'span'; var i, len = words.length, re; //匹配每一個特殊字符 ,進行轉(zhuǎn)義 var specialStr = ["*", ".", "?", "+", "$", "^", "[", "]", "{", "}", "|", "\\", "(", ")", "/", "%"]; $.each(specialStr, function(i, item) { if(words.indexOf(item) != -1) { words = words.replace(new RegExp("\\" + item, 'g'), "\\" + item); } }); //匹配整個關(guān)鍵詞 re = new RegExp(words, 'g'); if(re.test(text)) { text = text.replace(re, '<' + tag + ' class="highlight">$&</' + tag + '>'); } return text; }
總結(jié)
以上所述是小編給大家介紹的JS實現(xiàn)關(guān)鍵詞高亮顯示正則匹配,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!
網(wǎng)頁題目:JS實現(xiàn)關(guān)鍵詞高亮顯示正則匹配
轉(zhuǎn)載注明:http://www.chinadenli.net/article28/jigicp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站、全網(wǎng)營銷推廣、微信公眾號、手機網(wǎng)站建設(shè)、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)