js替换字符问题:将搜索结果高亮或红色字体显示。

敏捷William 2011-10-26 09:30:01
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>


求上【替换代码】的改进方法,
...全文
479 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
敏捷William 2011-10-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 calmcrime 的回复:]
JScript code

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\……
[/Quote]

上面的方法在<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
敏捷William 2011-10-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 calmcrime 的回复:]
JScript code

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\……
[/Quote]

很感谢!明天试试!
001007009 2011-10-26
  • 打赏
  • 举报
回复

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)


楼主 这个意思?

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧