java代码着色_给java代码着色源码

展开全部

是javascript的着色吧。你写错了哦!

SyntaxHighlighter Build Test Page

SyntaxHihglighter Test

 
 

var hi = "hi!";

function test()

{

var a = 5;

if(a<10)

{

return 10;

}

else

{

return avar b = a;

}

dvar b = a;

}

function hightLight(str)

{

var start_var = false;

if(str.substring(0,3) == "var")

{

start_var = true;

}

var keywords_green = "= { }".split(" ");

var keywords_blue = "function new return var typeof instanceof".split(" ");

var keywords_red = "break case catch continue default delete else finally for if switch this throw try void while with ;".split(" ");

//user lite keyword no hightLight with: do in

strstr = str.replace(/};/g,"};\n");//对只有一行的压缩代码,每个方法换一行,方便查阅

for(var i = 0; i < keywords_green.length; i++)

{

var oReg = new RegExp(keywords_green[i], "g");

var rp = "" + keywords_green[i] + "";

strstr = str.replace(oReg,rp);

}

//给异常的e69da5e6ba9062616964757a686964616f31333239303836关键字var加上背景颜色,顺序不能变

var rp3 = "$1var";

strstr = str.replace(/([^;|{|\t| ])var/g,rp3);

if(start_var)

{

alert(str);

//去掉第一个以var开头的背景颜色

strstr = str.replace(/var/,"var");

}

for(var i = 0; i < keywords_blue.length; i++)

{

var oReg = new RegExp(keywords_blue[i], "g");

var rp = "" + keywords_blue[i] + "";

strstr = str.replace(oReg,rp);

}

for(var i = 0; i < keywords_red.length; i++)

{

var oReg = new RegExp(keywords_red[i], "g");

var rp = "" + keywords_red[i] + "";

var rp2 = "$1" + keywords_red[i] + "(";

//if for are use more and other code not in keyword are use it

if(keywords_red[i] == "if")

{

strstr = str.replace(/if(\s?)\(/g,rp2);

}

else if(keywords_red[i] == "for")

{

strstr = str.replace(/for(\s?)\(/g,rp2);

}

else

{

strstr = str.replace(oReg,rp);

}

}

strstr = str.replace(/\n/g,"
");

strstr = str.replace(/\t/g,"    ");//for ie can't with four space

return str;

}

function init()

{

var obj = document.getElementById("showCode");

var str = obj.innerText || obj.textContent;//innerHTML会吧<>转义成<>导致无法加亮分号

obj.innerHTML = hightLight(str);

}

init();

SyntaxHighlighter Build Test Page

SyntaxHihglighter Test

 
 

var hi = "hi!";

function test()

{

var a = 5;

if(a<10)

{

return 10;

}

else

{

return avar b = a;

}

dvar b = a;

}

function hightLight(str)

{

var start_var = false;

if(str.substring(0,3) == "var")

{

start_var = true;

}

var keywords_green = "= { }".split(" ");

var keywords_blue = "function new return var typeof instanceof".split(" ");

var keywords_red = "break case catch continue default delete else finally for if switch this throw try void while with ;".split(" ");

//user lite keyword no hightLight with: do in

str = str.replace(/};/g,"};\n");//对只有一行的压缩代码,每个方法换一行,方便查阅

for(var i = 0; i < keywords_green.length; i++)

{

var oReg = new RegExp(keywords_green[i], "g");

var rp = "" + keywords_green[i] + "";

str = str.replace(oReg,rp);

}

//给异常的关键字var加上背景颜色,顺序不能变

var rp3 = "$1var";

str = str.replace(/([^;|{|\t| ])var/g,rp3);

if(start_var)

{

alert(str);

//去掉第一个以var开头的背景颜色

str = str.replace(/var/,"var");

}

for(var i = 0; i < keywords_blue.length; i++)

{

var oReg = new RegExp(keywords_blue[i], "g");

var rp = "" + keywords_blue[i] + "";

str = str.replace(oReg,rp);

}

for(var i = 0; i < keywords_red.length; i++)

{

var oReg = new RegExp(keywords_red[i], "g");

var rp = "" + keywords_red[i] + "";

var rp2 = "$1" + keywords_red[i] + "(";

//if for are use more and other code not in keyword are use it

if(keywords_red[i] == "if")

{

str = str.replace(/if(\s?)\(/g,rp2);

}

else if(keywords_red[i] == "for")

{

str = str.replace(/for(\s?)\(/g,rp2);

}

else

{

str = str.replace(oReg,rp);

}

}

str = str.replace(/\n/g,"
");

str = str.replace(/\t/g,"    ");//for ie can't with four space

return str;

}

function init()

{

var obj = document.getElementById("showCode");

var str = obj.innerText || obj.textContent;//innerHTML会吧<>转义成<>导致无法加亮分号

obj.innerHTML = hightLight(str);

}

init();

运行结果:

SyntaxHihglighter Test

var hi = "hi!";

function test()

{

var a = 5;

if(a<10)

{

return 10;

}

else

{

return avar b = a;

}

dvar b = a;

} 发现javaEye的语法着色功能有bug,我原来的str = str.replace(/};/g,"};\n");变成strstr = str.replace(/};/g,"};\n"); 了!给多了个str,重新编辑html代码也给弄乱了,把源代码上传给大家了。

语法着色我自己测试过了,这个其实很简单,就是把关键字替换一下而已,那些关键字替换成什么颜色完全可以自定义,语法着色不是我的目的,我的目的是作为压缩脚本后的语法检查。

因为不规范的写法在脚本压缩成一行和去掉多余空格后经常会报错,例如赋值符后的变量没有以;号结束,else后面没有{}包含起来等,在压缩后的脚本通过语法着色可以比较容易知道在那个地方出错了。

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值