搜索后的关键字高亮显示(急)100分
一个字符串如:str = "<p>依据季节变化和茶树新梢生长的间歇<a href='#?id=2008'>年份2008</a>平常清明过后春茶开始大</p>"
我现在只想找到非html代码中的2008,并高亮显示,效果如下:
str = "<p>依据季节变化和茶树新梢生长的间歇<a href='#?id=2008'>年份<label class='sr_word01'>2008</label></a>平常清明过后春茶开始大</p>"
如果用 str..Replace("2008","<label class='sr_word01'>2008</label>") 就会把链接地址的参数id=2008中的2008也替换掉了。
如何才能实现?请高手指点
[解决办法]
InnerText;
[解决办法]
用正则表达市啊
[解决办法]
Function ReplaceTest( strPatrn, ItemInfo )
Dim regEx
Dim str
Dim patrnArry
Dim patrn
Dim replStr
Dim nRTCount
Dim nArrayCount
str = ""
patrn = ""
replStr = ""
nArrayCount = 1
patrnArry = split( strPatrn, " " )
For nRTCount = 0 To UBound( patrnArry )
If IsEmptyString( Trim( patrnArry( nRTCount ) ) ) = false Then
replStr = replStr & "<font color='red'>$" & nArrayCount & "</font>"
nArrayCount = nArrayCount + 1
End If
Next
For nRTCount = 0 To UBound( patrnArry )
If IsEmptyString( Trim( patrnArry( nRTCount ) ) ) = false Then
patrn = patrn & "(" &Trim( patrnArry( nRTCount ) ) & ")|"
End If
Next
patrn = mid( patrn, 1, len( patrn ) - 1 )
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
regEx.Global = True
ReplaceTest = regEx.Replace(ItemInfo, replStr)
End Function
[解决办法]
- C# code
#region 返回搜索红色关键词 replacered public static string replacered(string title, string redkey) { title = title.Replace(redkey, "<font color='#ff0000'>" + redkey + "</font>"); return title; } #endregion
[解决办法]
[解决办法]
帮顶
[解决办法]
- HTML code
<html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"> <title>无标题页</title></head><body> <form id="form1" runat="server"> <div> <a href='#?id=2008' id="a1">年份2008</a> <script> document.getElementById("a1").innerHTML=document.getElementById("a1").innerHTML.replace("2008","<font color='red'>2008</font>"); </script> </div> </form></body></html>
[解决办法]
帮助楼主顶一下,顺便自己也学习一下,o(∩_∩)o...
[解决办法]
学习了....
[解决办法]
我刚做好这个效果
http://search.rrsou.com/search.aspx?k=%e8%a3%85%e4%bf%ae&p=1
[解决办法]
这种运用好难
[解决办法]
我搜索的高亮不是你说的,那我新闻系统的高亮是不是你说的那种啊
http://www.rrsou.com/news.aspx?id=7679&page=1
[解决办法]
帮顶
[解决办法]
你说的那种情况,我觉得可以先把
"<p>依据季节变化和茶树新梢生长的间歇 <a href='#?id=2008'>年份 <label class='sr_word01'>2008 </label> </a>平常清明过后春茶开始大 </p>"
替换成
"##1依据季节变化和茶树新梢生长的间歇 ##2年份 ##32008 ##4 ##5平常清明过后春茶开始大 ##6"
然后你用replace来转换
最后再把##1 ##2 ##3....恢复过来,之前先用正则把html代码<....>都找出来放在一个string数组里
能看明白吧.
[解决办法]
[解决办法]
string AV2Color(string tmpStr)
{
string reValue = tmpStr;
string xingcheng = @"([a-zA-Z]{6} )";
reValue = Regex.Replace(reValue, xingcheng, "<font color=yellow>$1</font>");
}
[解决办法]
关注
[解决办法]
- HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>Untitled Document</title><style type="text/css"><!--.adKeyword { color: #FF0000;}--></style></head><body><a href='#?id=2008'>年份 <label class='sr_word01'>2008 </label> </a></body></html><script language="JavaScript" type="text/javascript"><!--if(document.createRange){ var range = document.createRange();}else var range = document.body.createTextRange(); if(range.findText){ while(range.findText("2008")) { range.pasteHTML(range.text.fontcolor("red")); range.collapse(true); }}else{ var s,n; s = window.getSelection(); while(window.find("2008")) { var n = document.createElement("SPAN"); n.style.color="red" s.getRangeAt(0).surroundContents(n); } }//--></script>
[解决办法]
本人赞同用正则表达式解决这个问题,只要搜索到“>[N个字符]2008”,就可以替换掉楼主想要的,具体的字符串模型不是很清楚。好像是">\s2008",呵呵
[解决办法]
关注!!!
帮你顶!!
[解决办法]
正则可以用这样的
string s = "<a href='#?id=2008'>年份 <label class='sr_word01'>2008 </label> </a>";
string r = @"(>[ \s\S]*)(2008)([ \s\S]*<)";
string v = Regex.Replace(s, r, "$1<font color=red>$2</font>$3");
Response.Write(v);
[解决办法]
用js吧 这里推荐给你个高亮jquery plugin
http://hi.baidu.com/freezesoul/blog/item/75b05166b197c920ab184cb7.html
[解决办法]
http://blog.csdn.net/kongwei521/archive/2008/03/03/2142799.aspx我转载的一篇文章
你看看符合不符合你。
[解决办法]
ding
ding
[解决办法]
顶你了.