Function Highlight(ziduan,keywords)
Dim RegEx,ArrayKeywords,i
Set RegEx=new RegExp
RegEx.IgnoreCase=True'不区分大小写
RegEx.Global=True
ArrayKeywords = Split(keywords," ")'用空格隔开的多关键字
For i=0 To Ubound(ArrayKeywords)
RegEx.Pattern="("&ArrayKeywords(i)&")"
ziduan=RegEx.Replace(ziduan,"<font color='red'>$1</font>" )
Next
Set RegEx=Nothing
Highlight=ziduan
End Function
response.write Highlight("12*a","12*a")高手支招,上面是一个高亮显示搜索关键字的代码,现在遇到的问题是当ziduan遭遇星号的时候就不起作用了,怎样才能实现把*当成一个普通的字符串进行比较!我想要的结果是当ziduan或keywords中包含星号时也能高亮显示,在此谢过了!
Dim RegEx,ArrayKeywords,i
Set RegEx=new RegExp
RegEx.IgnoreCase=True'不区分大小写
RegEx.Global=True
ArrayKeywords = Split(keywords," ")'用空格隔开的多关键字
For i=0 To Ubound(ArrayKeywords)
RegEx.Pattern="("&ArrayKeywords(i)&")"
ziduan=RegEx.Replace(ziduan,"<font color='red'>$1</font>" )
Next
Set RegEx=Nothing
Highlight=ziduan
End Function
response.write Highlight("12*a","12*a")高手支招,上面是一个高亮显示搜索关键字的代码,现在遇到的问题是当ziduan遭遇星号的时候就不起作用了,怎样才能实现把*当成一个普通的字符串进行比较!我想要的结果是当ziduan或keywords中包含星号时也能高亮显示,在此谢过了!
*有时候可以用Chr(42)代替
你看一下是不是这样:
response.write Highlight("12" & Chr(42) & "a","12" & Chr(42) & "a")
Function Highlight(ziduan, keywords)
Dim ArrayKeywords, i
ArrayKeywords = Split(keywords, " ") '用空格隔开的多关键字
For i = 0 To UBound(ArrayKeywords)
ziduan = Replace(ziduan, ArrayKeywords(i), "<font color='red'>" & ArrayKeywords(i) & "</font>")
Next
Highlight = ziduan
End Function
response.write Highlight("12*a","12*a")你那个正则表达式其实可以一次生成的:
Function Highlight(ziduan, keywords)
Dim RegEx
Set RegEx = CreateObject("vbscript.RegExp")
RegEx.IgnoreCase = True '不区分大小写
RegEx.Global = True
keywords = Replace(keywords, "*", "\*") '将特殊字符*转义,其他的+-/等用同样方法替换
RegEx.Pattern = "(" & Replace(keywords, " ", "|") & ")"
ziduan = RegEx.Replace(ziduan, "<font color='red'>$1</font>")
Set RegEx = Nothing
Highlight = ziduan
End Function
response.write Highlight("12*a","12*a")
不好意思,我刚上csdn,发贴的时候好像没发现有asp的版块耶!