|
您要打印的文件是:实现搜索结果的关键词变色标注的程序
|
|
|
实现搜索结果的关键词变色标注的程序
作者:飞鸟 转贴自:开发者俱乐部 点击数:2345
<% ' 以前写全文检索程序的时候写的. ' 原创 by 飞鸟@dev-club.com ' Email: flybird@dev-club.com ' ie5.5 脚本引擎 required
dim patern dim found dim str dim result patern=(a)|(b) str= A dog fall in love with a cat. Can you believe? result= call getMatchText(str,result,false) Response.Write result
sub getMatchText(byref str,byref result,isNeedTrunc) 'on error resume next Dim regEx, Match, Matches dim tStr Set regEx = New RegExp ' 建立正则表达式。 regEx.Pattern = (patern) ' 设置模式。 regEx.IgnoreCase = True ' 设置是否区分字符大小写。 regEx.Global = True ' 设置全局可用性。 Set Matches = regEx.Execute(str) ' 执行搜索。 if err.number<>0 then response.write 错误1: & err.description err.clear exit sub end if if matches.count <>0 then dim startIndex dim myMatchValue startIndex=1 for each match in matches if (instr(str,match.value)>0) then if instr(str,match.value)-50 >0 then startIndex=instr(str,match.value)-50 else startIndex=1 end if myMatchValue=match.value exit for end if next if isNeedTrunc then result= (mid(str,startIndex,strLength(myMatchValue)+100)) else result= (str) end if for each match in matches if not(instr(result,<font color=red> & match.value & </font>)>0) then result=replace(result,match.value,<font color=red> & match.value & </font> ) end if next found=true else found=false end if set regEx=nothing end sub %> |
|