时间: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邮箱联系删除。
自定义语法高亮,支持HTML,XML,CSS,JavaScript,VBScript,ASP,PHP,CSS,Perl/CGI,C/C++,C#,Java,VB
javascript语法高亮复制代码代码如下:(function(){varel=document.getElementById("img");vardoc=d
Highlightjs是一款优秀的代码高亮Js组件,可以很方便地对各种语言编写的代码添加语法高亮样式。然而,Highlightjs默认是不包括显示代码行号(Li
实现Markdown语法和代码语法高亮分别是用的Redcarpet和pygments.rb两个Gem:https://github.com/vmg/redcar
CodeMirror是一个基于JavaScript的代码编辑器,CodeMirror支持大量语言的语法高亮,也包括css,html,js等的高亮显示。此外,Co