您的位置:首页 > Web前端 > JavaScript

高亮显示语法匹配正则JS,待完善...

2009-02-05 16:50 447 查看
写了一个,不过要考虑的地方很多,转义字符....都没考虑进去

<mce:style><!--
*{font-size:12px;}
--></mce:style><style mce_bogus="1">*{font-size:12px;}</style>
<body>

<div id="code">
<pre>
private void aaaa()
{
Response.Write("aaaaa");
}

// private void privateBB()
// {
//    var a=1;
// }

/*
private void ccccc()
{
var a="aaa";//****/****/
/*
var b=1;
*/
}
*/
</pre>
</div>
</body>
<mce:script type="text/javascript"><!--
var div = document.getElementById("code");
var str=div.innerHTML;

var RulReg = {};
RulReg.KEWORD = //b(private|public|protected|void)+/b/gi;
RulReg.DBLCLEAR = /([//]{2,})([^/n]+)/gi;
RulReg.MULTICLEAR = /(//[/*]+(?:.|/n|/r)+[/*]+//)/gi;
RulReg.FONT = /<font[^>]+>([^<]+)<//font>/gi;
RulReg.QUTOR = /"([^"]+)"/gi;

//关键字
str = str.replace(//b(private|public|protected|void)+/b/gi,"<font style="color:blue" mce_style="color:blue">$1</font>");
//字符串
str = str.replace(/("[^"]+")/gi,"<font style="color:red" mce_style="color:red">$1</font>");
//注释部分 "//"
str = str.replace(RulReg.DBLCLEAR,function(){
var s = arguments[0];
s = s.replace(RulReg.FONT,"$1");
return s;
});
str = str.replace(RulReg.DBLCLEAR,"$1<font style="color:green" mce_style="color:green">$2</font>");
//注释部分 "/* */"
str = str.replace(RulReg.MULTICLEAR,function(){
var s = arguments[0];
s = s.replace(RulReg.FONT,"$1");
return s;
});
str = str.replace(RulReg.MULTICLEAR,"<font style="color:green" mce_style="color:green">$1</font>");
div.innerHTML = str;
// --></mce:script>


显示结果:

private void aaaa()
{
Response.Write("aaaaa");
}

// private void privateBB()
// {
//    var a=1;
// }

/*
private void ccccc()
{
var a="aaa";//****/****/
/*
var b=1;
*/
}
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: