突出显示关键词

作者:齐人无福 来源:ITPOW 日期:2002-8-3
--------------------
作者:齐人无福
主页:www.nettun.com
    搜索出一篇文章,如果仅有三言两语当然用不着突出显示关键词,因为读者可以一眼找
出关键词,但如果这篇文章很长,那么就有必要将关键词突出显示,比如加粗,红色显示,
加底色等等。我们的第一感觉是用replace,是的,没错,但是如果简简单单地用replace函
数却无法解决英文的大小写问题。下面用递归来解决这个问题,虽然不是最优算法,却简单
明了,值得一试。
        function processKeyword(str,uCaseStr,keyword)
          //递归
          dim pos,keyLen
          pos=instr(uCaseStr,keyword)
          keyLen=len(keyword)////可以使用全局变量
          if pos<=0 then
            processKeyword=str
          else
            processKeyword=left(str,pos-1)+"<a 
style='background:#FF0000;color:#00CC99'>"+mid(str,pos,keyLen)
+"</a>"+processKeyword
(mid(str,pos+keyLen),mid(uCaseStr,pos+keyLen),key)
          end if
        end function
        //////////////////////////////////////////////////----------------------
-
    上面是一个递归函数,uCaseStr与keyword均为大写,找出keyword在uCaseStr中的位置
后,在str中截取,并在关键词两端增添代码以突出显示。
        dim key
        key=uCase(request.querystring("key"))
        if key<>"" then
          dim uCaseContent
          uCaseContent=ucase(content)
          content=processKeyword(content,uCaseContent,key)
        end if
    以上是本站所使用的源码,已经调试成功。
相关文章