突出显示关键词
作者:齐人无福
来源:
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
以上是本站所使用的源码,已经调试成功。