科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件搜索后的关键字高亮显示

搜索后的关键字高亮显示

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

搜索后的关键字高亮显示

作者:csdn 来源:csdn 2009年12月14日

关键字: ASP.NET 问答

  • 评论
  • 分享微博
  • 分享邮件

 搜索后的关键字高亮显示

一个字符串如: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也替换掉了。

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

 

一个文章阅读的网站,要搜索包含关键字的文章,并高亮显示关键字。
因为文章中包含有html代码,有可能在html代码中也包含这个关键字,
因此搜索 加高亮的时候不能给 <...>中的关键字加高亮

你说的那种情况,我觉得可以先把" <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数组里。

 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章