服务器之家

服务器之家 > 正文

ASP语法高亮类代码

时间:2019-10-24 11:07     来源/作者:asp代码网

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

复制代码代码如下:


Class Wyd_AspCodeHighLight  
Private RegEx  
Public Keyword,ObjectCommand,Strings,VBCode  
Public KeyWordColor,ObjectCommandColor,StringsColor,Comment,CodeColor  
  Private Sub Class_Initialize()  
    Set RegEx = New RegExp  
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=""  
  End Sub  
  Private Sub Class_Terminate()  
    Set RegEx = Nothing  
  End Sub  
  Private Function M_Replace(Str,Pattern,Color)  
    RegEx.Pattern = Pattern  ' 设置模式。  
    M_Replace=RegEx.Replace(Str,"<font color="&Color&">$1</font>")  
  End Function   



  Private Function String_Replace(Str,Pattern,Pattern1,Color,IsString)  
  Dim Temp,RetStr  
RegEx.Pattern =Pattern1  
    Set Matches = RegEx.Execute(Str)  
    For Each Match In Matches   ' 遍历 Matches 集合  
       Temp=Re(Match.value)  
       Str = Replace(Str,Match.value,Temp)  
    Next  
RegEx.Pattern = Pattern  ' 设置模式。  
If IsString=1 Then  
       String_Replace=RegEx.Replace(Str,"<font color="&Color&">"$1"</font>")  
Else  
    String_Replace=RegEx.Replace(Str,"<font color="&Color&">$1</font>")  
End If  
  End Function  


  Private Function Re(Str)  
   Dim TRegEx,Temp  
   Set TRegEx = New RegExp  
   TRegEx.IgnoreCase = True  ' 设置是否区分字母的大小写。  
   TRegEx.Global = True   ' 设置全程性质。  
   TRegEx.Pattern="<.*?>"  
   Temp=TRegEx.Replace(Str,"")  
   Temp=Replace(Temp,"<","")  
   Temp=Replace(Temp,">","")  
   Re=Temp  
   Set TRegEx=Nothing  
  End Function  

  Public Function MakeLi()  
    Dim Temp  
If VBCode="" Then  
    MakeLi=""  
    Exit Function  
End If  
    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="<FONT  COLOR="&CodeColor&">"&RepVbCrlf(Temp)&"</FONT>"  
  End Function  
  Public Function RepVbCrlf(fString)  
     RepVbCrlf = Replace(fString, CHR(10), "<BR> ")  
  End Function  
  Public Function HTMLEncode(fString)  
     If IsNull(fString) or fString="" Then  
     HTMLEncode=""  
  Exit Function  
     End If  
     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  
   End Function  
End Class 





例子 

复制代码代码如下:


star=timer()  
Set TT = New Wyd_AspCodeHighLight  
If Request("xx")<>"" Then  
  TT.VBCode=Request("xx")  
  Response.write TT.MakeLi()  
  REsponse.write "<br>"&FormatNumber(timer()-star,2)*1000  
Else  

%>  
<FORM METHOD=POST action="Index2.asp">  
<TEXTAREA NAME="xx" ROWS="30" COLS="80">Class Lih  
Private RegEx  
Public Keyword,ObjectCommand,Strings,VBCode  
Public KeyWordColor,ObjectCommandColor,StringsColor,Comment  
  Private Sub Class_Initialize()  
    Set RegEx = New RegExp  
    KeyWordColor="#0000FF"  
    ObjectCommandColor="#FF0000"  
    StringsColor="#FF00FF"  
Comment="#008000"  
Keyword="If|End|For|Next|Function|Then|Do|While|Wend|Class"  
VBCode=""  
  End Sub  
  Private Sub Class_Terminate()  
    Set RegEx = Nothing  
  End Sub  
  Private Function M_Replace(Str,Pattern,Color)  
    RegEx.IgnoreCase = False   ' 设置是否区分字母的大小写。  
    RegEx.Global = True   ' 设置全程性质。  
    RegEx.Pattern = Pattern  ' 设置模式。</TEXTAREA>  
<INPUT TYPE="submit" value=fff>  
</FORM>  
<%End If%>

标签:

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
超A是什么意思 你好a表达的是什么
超A是什么意思 你好a表达的是什么 2019-06-06
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字
抖音撒撒累累是什么歌 撒撒累累张艺兴歌曲名字 2019-06-05
返回顶部