需求中我們經常會遇到模糊查詢的方式渲染數據,效果類似於下圖:
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>');