1. 程式人生 > >模糊查詢關鍵字高亮顯示以及多個關鍵字的匹配定位

模糊查詢關鍵字高亮顯示以及多個關鍵字的匹配定位

需求中我們經常會遇到模糊查詢的方式渲染資料,效果類似於下圖:

js渲染資料的方式如下:

var keyword = $("#searchSchool").val();
for(var i=0;i<data.schoolNames.length;i++){
   var renderPage = '<li dataId="'+data.schoolNames[i].id+'"><p>'+data.schoolNames[i].schoolName.replace(new RegExp(keyword,'g'),'<lable style="color: #28c4ff">'+keyword+'</lable>')+'</p></li>'
   $(".searchSchoolList").append(renderPage);
 }

 其中關鍵部分在於,replace需要替換的值是通過變數的方式進去的,如果通過replace(keyword,'')的方式的話,匹配一個是沒有問題的,但如果要匹配全域性的,replace(/keyword/g,'')這樣的方式是不行的,變數keyword是傳不到正則裡面的,於是利用 JS 的 RegExp 物件,將 g 引數單拿了出來,這樣的話,正則的內容可以用變數來代替了,

string.replace(new RegExp(keyword,'g'),'<lable>'+keyword+'</lable>');