当前位置:K88软件开发文章中心编程语言AspAsp01 → 文章内容

asp搜索结果中关键词高亮显示方法

减小字体 增大字体 作者:佚名     来源:asp编程网  发布时间:2018-12-30 8:33:52

在ASP做的站内搜索中经常遇到这种效果,但要实现智能搜索这类就比较累一点,其实任何程序都差不多,主要还是看数据库的处理能力,一般小网站ASP经常跟ACCESS数据库搭配
在这种配置下我们要实现关键词不区分大小写搜索并高亮显示要借助ASP的正则处理了,请看下面代码:
代码如下:
<
% Function Takeout(patrn,string1,colors) '提取搜索关键字匹配文字 Dim regEx, Match, Matches, tt ' 建立变量。 Set regEx = New RegExp ' 建立正则表达式。 regEx.Pattern = patrn ' 设置模式。 regEx.IgnoreCase = True ' 设置是否区分大小写。 regEx.Global = True ' 设置全局可用性。 Set Matches = regEx.Execute(string1) ' 执行搜索。 For Each Match in Matches ' 遍历 Matches 集合。 RetStr = RetStr &
Match.Value &
" " Next RetStr = trim(RetStr) if instr(RetStr," ")>
0 then for tt = 0 to ubound(split(RetStr," ")) string1 = replace(string1,split(RetStr," ")(tt),"<
font color="""&
colors&
""">
"&
split(RetStr," ")(tt)&
"<
/font>
") next else string1 = replace(string1,RetStr,"<
font color="""&
colors&
""">
"&
RetStr&
"<
/font>
") end if Takeout = string1 End Function response.write Takeout("www.K88.NET", "asp编程网","red") Function Highlight(strContent,keyword) '标记高亮关键字 Dim RegEx Set RegEx=new RegExp RegEx.IgnoreCase =True '不区分大小写 RegEx.Global=True Dim ArrayKeyword,i ArrayKeyword = Split(keyword," ")'用空格隔开的多关键字 For i=0 To Ubound(ArrayKeyword) RegEx.Pattern="("&
ArrayKeyword(i)&
")" strContent=RegEx.Replace(strContent,"<
font color=red>
$1<
/font>
" ) Next Set RegEx=Nothing Highlight=strContent End Function response.write Highlight("asp编程网","www.K88.NET") %>
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)


asp搜索结果中关键词高亮显示方法