ASP语法高亮类代码

时间:2021-05-28

此类高亮根据Editplus高亮来做的

复制代码 代码如下:
ClassWyd_AspCodeHighLight
PrivateRegEx
PublicKeyword,ObjectCommand,Strings,VBCode
PublicKeyWordColor,ObjectCommandColor,StringsColor,Comment,CodeColor
PrivateSubClass_Initialize()
SetRegEx=NewRegExp
RegEx.IgnoreCase=True'设置是否区分字母的大小写True不区分。
RegEx.Global=True'设置全程性质。
KeyWordColor="#0000FF"
ObjectCommandColor="#FF0000"
StringsColor="#FF00FF"
Comment="#008000"
CodeColor="#993300"
Keyword="Set|Private|If|Then|Sub|End|Function|For|Next|Do|While|Wend|True|False|Nothing|Class"'关建字请自己添加
ObjectCommand="Left|Mid|Right|Int|Cint|Clng|String|Join|Array"'函数请自己添加
VBCode=""
EndSub
PrivateSubClass_Terminate()
SetRegEx=Nothing
EndSub
PrivateFunctionM_Replace(Str,Pattern,Color)
RegEx.Pattern=Pattern'设置模式。
M_Replace=RegEx.Replace(Str,"<fontcolor="&Color&">$1</font>")
EndFunction



PrivateFunctionString_Replace(Str,Pattern,Pattern1,Color,IsString)
DimTemp,RetStr
RegEx.Pattern=Pattern1
SetMatches=RegEx.Execute(Str)
ForEachMatchInMatches'遍历Matches集合
Temp=Re(Match.value)
Str=Replace(Str,Match.value,Temp)
Next
RegEx.Pattern=Pattern'设置模式。
IfIsString=1Then
String_Replace=RegEx.Replace(Str,"<fontcolor="&Color&">"$1"</font>")
Else
String_Replace=RegEx.Replace(Str,"<fontcolor="&Color&">$1</font>")
EndIf
EndFunction


PrivateFunctionRe(Str)
DimTRegEx,Temp
SetTRegEx=NewRegExp
TRegEx.IgnoreCase=True'设置是否区分字母的大小写。
TRegEx.Global=True'设置全程性质。
TRegEx.Pattern="<.*?>"
Temp=TRegEx.Replace(Str,"")
Temp=Replace(Temp,"<","")
Temp=Replace(Temp,">","")
Re=Temp
SetTRegEx=Nothing
EndFunction

PublicFunctionMakeLi()
DimTemp
IfVBCode=""Then
MakeLi=""
ExitFunction
EndIf
VBCode=HTMLEncode(VBCode)
Temp=M_Replace(VBCode,"\b("&Keyword&")\b",KeyWordColor)
Temp=M_Replace(Temp,"\b("&ObjEctCommand&")\b",ObjectCommandColor)
Temp=String_Replace(Temp,"""(.*?)""","""(.*)(<.+?>)("&KeyWord&ObjectCommand&")+(<.+?>)(.*)""",StringsColor,1)'字符串
Temp=String_Replace(Temp,"(('|rem).*)","'(.*)(<.+?>)("&KeyWord&ObjectCommand&")+(<.+?>)(.*)",Comment,0)'注释
MakeLi="<FONTCOLOR="&CodeColor&">"&RepVbCrlf(Temp)&"</FONT>"
EndFunction
PublicFunctionRepVbCrlf(fString)
RepVbCrlf=Replace(fString,CHR(10),"<BR>")
EndFunction
PublicFunctionHTMLEncode(fString)
IfIsNull(fString)orfString=""Then
HTMLEncode=""
ExitFunction
EndIf
fString=replace(fString,">",">")
fString=replace(fString,"<","<")
'fString=Replace(fString,CHR(32),"")
'fString=Replace(fString,CHR(9),"")
'fString=Replace(fString,CHR(34),""")
'fString=Replace(fString,CHR(39),"'")
'fString=Replace(fString,CHR(13),"")
'fString=Replace(fString,CHR(10)&CHR(10),"</P><P>")
'fString=Replace(fString,CHR(10),"<BR>")
HTMLEncode=fString
EndFunction
EndClass




例子

复制代码 代码如下:
star=timer()
SetTT=NewWyd_AspCodeHighLight
IfRequest("xx")<>""Then
TT.VBCode=Request("xx")
Response.writeTT.MakeLi()
REsponse.write"<br>"&FormatNumber(timer()-star,2)*1000
Else

%>
<FORMMETHOD=POSTaction="Index2.asp">
<TEXTAREANAME="xx"ROWS="30"COLS="80">ClassLih
PrivateRegEx
PublicKeyword,ObjectCommand,Strings,VBCode
PublicKeyWordColor,ObjectCommandColor,StringsColor,Comment
PrivateSubClass_Initialize()
SetRegEx=NewRegExp
KeyWordColor="#0000FF"
ObjectCommandColor="#FF0000"
StringsColor="#FF00FF"
Comment="#008000"
Keyword="If|End|For|Next|Function|Then|Do|While|Wend|Class"
VBCode=""
EndSub
PrivateSubClass_Terminate()
SetRegEx=Nothing
EndSub
PrivateFunctionM_Replace(Str,Pattern,Color)
RegEx.IgnoreCase=False'设置是否区分字母的大小写。
RegEx.Global=True'设置全程性质。
RegEx.Pattern=Pattern'设置模式。</TEXTAREA>
<INPUTTYPE="submit"value=fff>
</FORM>
<%EndIf%>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章