当前位置:asp编程网>技术教程>Asp教程>  正文

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

2011-11-18 08:12:18   来源:网络    作者:佚名   浏览量:2053   收藏
在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.aspbc.com", "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.aspbc.com") 
%> 
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)


关于我们-广告合作-联系我们-积分规则-网站地图

Copyright(C)2013-2017版权所属asp编程网