js 格式化Delpi代码效果正则简单示例

<script language="JavaScript" type="text/javascript">
<!--
var arr = new Array();
KeyRed
="procedure,function,type,uses,interface,unit,private,public,implementation,packed,record,true,false";
ArrRed
=KeyRed.split(","); 
KeyBlue
="var,begin,end,try,except,finally";
ArrBlue
=KeyBlue.split(","); 
KeyStrong
="if,then,while,do,for,class,case,of,else,downto,to,with,not,nil,result";
ArrStrong
=KeyStrong.split(",");
function change1(str){
    str 
= str.replace(/<([^>]*)>/ig,"");
    str 
= "<font color=#000099>"+str+"</font>";
    
return str;
}
function change2(str){
    str 
= str.replace(/<([^>]*)>/ig,"");
    str 
= "<font color=#666666><i>"+str+"</i></font>";
    
return str;
}
function change3(str){
    str 
= str.replace(/<([^>]*)>/ig,"");
    str 
= "<font color=#009900>"+str+"</font>";
    
return str;
}
function encode() {
    
var o = document.getElementById("htmlcode");
    
var htmlcode = o.value;
    htmlcode 
= htmlcode.replace(/</g, "&lt;");
    htmlcode 
= htmlcode.replace(/>/g, "&gt;");
    htmlcode 
= htmlcode.replace(/ /g, "&nbsp;");
    htmlcode = htmlcode.replace(/(#\b\d+\b)/g, "<font color=blue>$1</font>");
    htmlcode 
= htmlcode.replace(/(\b\d+\b)/g, "<font color=red>$1</font>");
    htmlcode 
= htmlcode.replace(/(\(|\))/g, "<font color=#340000>$1</font>");
    
for(i=0;i<ArrRed.length;i++){
        tmp
="htmlcode = htmlcode.replace(/\\b"+ArrRed[i]+"\\b/ig, \"<font color=#990000>"+ArrRed[i]+"</font>\");"
        eval(tmp);    
    }
    
for(i=0;i<ArrBlue.length;i++){
        tmp
="htmlcode = htmlcode.replace(/\\b"+ArrBlue[i]+"\\b/ig, \"<font color=blue>"+ArrBlue[i]+"</font>\");"
        eval(tmp);    
    }
    
for(i=0;i<ArrStrong.length;i++){
        tmp
="htmlcode = htmlcode.replace(/\\b"+ArrStrong[i]+"\\b/ig, \"<strong><font color=#000066>"+ArrStrong[i]+"</font></strong>\");"
        eval(tmp);    
    }
    htmlcode 
= htmlcode.replace(/(\/\/.*\n?)/g, change2);
    htmlcode 
= htmlcode.replace(/'([^']|'?R')*'/g, change1);
    htmlcode 
= htmlcode.replace(/\{[^$]([^\{\}]|\{?R\})*\}/g, change2);
    htmlcode 
= htmlcode.replace(/\{\$([^\{\$\}]|\{\$?R\})*\}/g, change3);
    htmlcode
="<fieldset><legend>Code</legend>"+htmlcode+"</fieldset>";
    o.value 
= htmlcode;
}
-->
</script>
<textarea id="htmlcode" style="width:100%;height:30%;">
</textarea>
<input value="转换" onclick="encode();" type="button"/>
posted @ 2009-04-13 13:37  幽灵湖  阅读(198)  评论(0)    收藏  举报