Junior Farmer

真正了不起的程序员对自己程序的每一个字节都了如指掌
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

搜索关键字描红

Posted on 2013-10-25 16:58  农少  阅读(265)  评论(0编辑  收藏  举报

使用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”);