主页 > 知识库 > ASP高亮类

ASP高亮类

热门标签:团购网站 电子围栏 科大讯飞语音识别系统 阿里云 服务器配置 Linux服务器 银行业务 Mysql连接数设置
复制代码 代码如下:

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,"""(.*?)""","""(.*)(.+?>)("KeyWordObjectCommand")+(.+?>)(.*)""",StringsColor,1)'' 字符串
   Temp=String_Replace(Temp,"((''|rem).*)","''(.*)(.+?>)("KeyWordObjectCommand")+(.+?>)(.*)",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
%> 

标签:江苏 大理 衡水 萍乡 广元 蚌埠 衢州 枣庄

巨人网络通讯声明:本文标题《ASP高亮类》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266