js替换字符问题:将搜索结果高亮或红色字体显示。一种方式:将A标签的值添加<span class="红色样式">搜索内容</span>【替换代码】:
      var term = $("#EventKey").val(); //搜索内容
                            var regex = new RegExp(term, "igm");
                            var highlightTerm = '<span class="red">' + term + '</span>';
                            var finalresult = $.trim(result).replace(regex, highlightTerm); //result:原结果;finalresult:替换后的结果
                            $(".items").html(finalresult);但测试发现一个问题:A是带有href连接,很容易将href路径中的字符替换了。<a class=\"fb\" href=\"/Event/Content/8811986d-d62b-c235-841a-08ce619dfb3c\">测试标题1</a>如果搜索内容为:“1”
则会把href的guid中的1添加上样式。<a class=\"fb\" href=\"/Event/Content/88<span class=\"red\">1</span><span class=\"red\">1</span>986d-d62b-c235-84<span class=\"red\">1</span>a-08ce6<span class=\"red\">1</span>9dfb3c\">测试标题<span class=\"red\">1</span></a>
求上【替换代码】的改进方法,

解决方案 »

  1.   


    var str = '<a class=\"fb\" href=\"/Event/Content/8811986d-d62b-c235-841a-08ce619dfb3c\">测试标题1</a><a class=\"fb\" href=\"/Event/Content/8811986d-d62b-c235-841a-08ce619dfb3c\">测试标题2</a>'
    var high = '1';
    var re = /[^>]+>(.+?)<[^<]+/gi;
    re.test(str);
    str = str.replace(re, function($){
    return $.replace((RegExp.$1), (RegExp.$1).replace(high, '<span class="red">'+high+'</span>'))
    })
    alert(str)
    楼主 这个意思?
      

  2.   


    上面的方法在<a href="/../../" >标题1</a>是可是行的通。但又测试了 <a href="javascript:open('../../..')">标题1</a> 就出现问题了。相关代码:
    <A href=\"javascript:showPopupPage(\'/BasicData/GetBasicDataInfo/DutyAndSentryPoint/59fe2a16-3c11-c40e-251c-08ce61a0fbb5/showMap\',610,670)\">24</A>
    Data数据: data "<DIV class=title><A href=\"javascript:showPopupPage(\'/BasicData/GetBasicDataInfo/DutyAndSentryPoint/59fe2a16-3c11-c40e-251c-08ce61a0fbb5/showMap\',610,670)\">24</A> </DIV>\r\n<DIV class=description>24 位于 24 (经度:24°,纬度:24 °,高度:24米);配备 24 全天值班 24。 </DIV>" String搜索“2”
    Data数据: "<DIV class=title><A href=\"javascript:showPopupPage(\'/BasicData/GetBasicDataInfo/DutyAndSentryPoint/59fe<span class=\"highlighted\">2</span>a16-3c11-c40e-251c-08ce61a0fbb5/showMap\',610,670)\">24</A> </DIV>\r\n<DIV class=description><span class=\"highlighted\">2</span>4 位于 24 (经度:24°,纬度:24 °,高度:24米);配备 24 全天值班 24。 </DIV>" String搜索“24”
    Data数据: "<DIV class=title><A href=\"javascript:showPopupPage(\'/BasicData/GetBasicDataInfo/DutyAndSentryPoint/59fe2a16-3c11-c40e-251c-08ce61a0fbb5/showMap\',610,670)\"><span class=\"highlighted\">24</span></A> </DIV>\r\n<DIV class=description><span class=\"highlighted\">24</span> 位于 24 (经度:24°,纬度:24 °,高度:24米);配备 24 全天值班 24。 </DIV>" String