您好,登錄后才能下訂單哦!
html 和ajax 部分就不寫了,只需將需要匹配的文字傳進去就可以了
比如匹配后臺傳回的字符串data.content
中的關鍵詞:直接調用:
data.content = highLightKeywords(data.content,keywords)
即可
以下兩個函數分辨是匹配1:匹配關鍵詞words中每一個字符,2:匹配整個關鍵詞words
//高亮關鍵字 text =>內容 words:關鍵詞 tag 被包裹的標簽 //匹配每一個關鍵字字符 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; }
//匹配整個關鍵詞 不拆分 function highlight(text, words, tag) { // 默認的標簽,如果沒有指定,使用span tag = tag || 'span'; var i, len = words.length, re; //匹配每一個特殊字符 ,進行轉義 var specialStr = ["*", ".", "?", "+", "$", "^", "[", "]", "{", "}", "|", "\\", "(", ")", "/", "%"]; $.each(specialStr, function(i, item) { if(words.indexOf(item) != -1) { words = words.replace(new RegExp("\\" + item, 'g'), "\\" + item); } }); //匹配整個關鍵詞 re = new RegExp(words, 'g'); if(re.test(text)) { text = text.replace(re, '<' + tag + ' class="highlight">$&</' + tag + '>'); } return text; }
總結
以上所述是小編給大家介紹的JS實現關鍵詞高亮顯示正則匹配,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。