搜索关键字描红

使用JavaScript对处理关键字对后台数据库进行搜索时,对得到的搜索记录中的匹配关键字进行描红处理:

   1: $.getJSON("http://10.65.9.187:8090/MySQLdemo/servlet/SearchControl", {"keyword":keyword}, function(data) {
   2:                   //alert(data[1].bookname);
   3:                   $.each(data, function(index, item){
   4:                       str += "<tr><td>"+item.id+"</td><td>"+item.bookname+"</td><td>"+item.issuDate+"</td><td>"+item.price+"</td><td>"+item.synopsis+"</td><td>"+item.Maker+"</td><td>"+item.pulisher+"</td></tr>";
   5:                   });
   6:                   str = str.replace(new RegExp(keyword, "gi"), "<font color='red'>"+keyword+"</font>");
   7:                   $("#mytb").html(str);
   8:                   
   9:               });

在这里有一个问题需要注意:使用string.replace(regexp, replacement) 替换目标字符串时,若regexp不具有全局性质,则只会替换第一个匹配,因此要指定全局参数g。同时不要这样写:str.replace(/keyword/gi, “objstr”);

因为这样会匹配字符串”keyword”,而不是用keyword去匹配。所以要这样写:str.replace(new RegExp(keyword, “gi”), “objstr”);

原文地址:https://www.cnblogs.com/hgfrzh/p/3388251.html