把下面代码保存为HightLightCode.asp:

生成语法高亮代码<html>
生成语法高亮代码
<head>
生成语法高亮代码
<title>生成语法高亮代码</title>
生成语法高亮代码
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
生成语法高亮代码
</head>
生成语法高亮代码
<body>
生成语法高亮代码
<FORM name=form1 METHOD=POST action="">
生成语法高亮代码
<TEXTAREA NAME="Content" ROWS="10" COLS="20"><%=Request("Content")%></TEXTAREA>
生成语法高亮代码
<br><br><INPUT TYPE="submit" value="生成语法高亮代码" name="make">
生成语法高亮代码
</FORM>
生成语法高亮代码
<input name="Increase" title="增大编辑框" type="button" value=" + " onClick="javascript:form1.Content.rows=form1.Content.rows+2;form1.Content.cols=form1.Content.cols+4;"> <input name="Decrease" title="缩小编辑框" type="button" value=" - " onClick="javascript:if((form1.Content.rows>10)&&(form1.Content.cols>20)){ form1.Content.rows=form1.Content.rows-2;form1.Content.cols=form1.Content.cols-4}"><Br>
生成语法高亮代码
<%
生成语法高亮代码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&">&quot;$1&quot;</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, ">""&gt;")
生成语法高亮代码     fString 
= replace(fString, "<""&lt;")
生成语法高亮代码     
'fString = Replace(fString, CHR(32), "&nbsp;")
生成语法高亮代码
     'fString = Replace(fString, CHR(9), "&nbsp;")
生成语法高亮代码
     'fString = Replace(fString, CHR(34), "&quot;")
生成语法高亮代码
     'fString = Replace(fString, CHR(39), "&#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("Content")<>"" Then
生成语法高亮代码  TT.VBCode
=Request("Content")
生成语法高亮代码  Response.write TT.MakeLi()
生成语法高亮代码  REsponse.write 
"<br>耗时:"&FormatNumber(timer()-star,2)*1000
生成语法高亮代码
End If%>
生成语法高亮代码
</body>
生成语法高亮代码
</html>

相关文章: