(原创)JS代码的格式化和压缩

ttyp 2006-05-22 03:55:33
曾经为看别人写的杂乱代码而头痛吗?曾经为看BWindow代码而烦恼吗?曾经为减小JS体积和JS的可读性之间的矛盾而左右徘徊吗?最好的办法是有个代码格式化和代码压缩的程序,今天总算有了,它是纯JS编写的,当然也就是开源的了.不好意思,做个广告先:),老早就想写这个代码了,今天总算利用这个周末把它写完了,由于写的仓促,还有些小BUG,请经常注意更新!

下载地址:http://ttyp.cnblogs.com/archive/2006/05/22/406323.html
...全文
1459 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuph3000 2006-06-09
  • 打赏
  • 举报
回复
up
ttyp 2006-06-08
  • 打赏
  • 举报
回复
up
heng_2008 2006-06-08
  • 打赏
  • 举报
回复
不错不错,正在为这个而发愁.....谢谢楼主....
  • 打赏
  • 举报
回复
MARK
  • 打赏
  • 举报
回复
帮你up..............
netdust 2006-05-25
  • 打赏
  • 举报
回复
顶完再看
Deneral 2006-05-25
  • 打赏
  • 举报
回复
up
fwqlove 2006-05-25
  • 打赏
  • 举报
回复
indexroot 2006-05-25
  • 打赏
  • 举报
回复
谢谢,
UP
faisun 2006-05-24
  • 打赏
  • 举报
回复
登记一下
sinocom009 2006-05-24
  • 打赏
  • 举报
回复
http://fc8264.meibu.com/

eform自定义表单平台是一个在IE浏览器中可视化的设计软件界面的工具。无论是输入界面还是报表界面,无论是简单的输入查询还是复杂的逻辑处理。都可以由eform设计出来。

eform自定义表单平台适用于网上OA系统的自定义表单模块,工作流系统的自定义表单模块,信息管理系统方面的软件开发项目等等。
hbhbhbhbhb1021 2006-05-23
  • 打赏
  • 举报
回复
兄弟,写得真棒,我测试了一些都可以实现,学习!
我仔细看过你的代码,其实我想可以再完善一些,增加一些语法限制,比如增加括号匹配不匹配的,我在我本地已经可以了,代码太长,不好发再这里就不发了
就是在类CLASS_FORMAT增加一个属性
this._beginBlockNum=0;初始化为0,就好比一个栈,当把代码进行分组之后,不是有判断这个分组是不是{的代码吗?就是在这句分支里面
else if(!slash_slash_comment_opened&&!slash_star_comment_opened && !quote_opened &&codeArr[i]==this._beginBlock){
加this._beginBlockNum++;
同理在}里this._beginBlockNum--;
然后在格式化输出时判断是不是0,如果不是就提示语法错误
原理类似于操作系统的信号量,当然和信号量执行的目的完全不是一回事。

wengnet 2006-05-23
  • 打赏
  • 举报
回复
下一个看看~!
ttyp 2006-05-23
  • 打赏
  • 举报
回复
up,大家来测试测试啊

meizz是什么意思,没看懂
KimSoft 2006-05-23
  • 打赏
  • 举报
回复
to ttyp: 测试过了,很不错。

你的格式化效果:
/*
这个是一个类
*/


function xx(num,str){
//说明
var a=num;
this.aa=a;
this.bb=function (){
alert(str);

}
this.cc=function (){
for(var i=0;i<10;i++){
document.title=i;

}
}
};

xx.prototype.dd=function (){
alert("d d kd");

}

var a=new xx(100,"hello"),b=new xx(0,"ttyp");
if(1>2){
alert();

}
else {

alert(" hell ");

}

a.bb();
b.dd();
alert(a.aa);


提一点小建议:如果等号边上加上空格代码就更美观了。今天上午写了个blog,楼主看看:

http://blog.csdn.net/KimSoft/archive/2006/05/23/750400.aspx

我用MyEclipse格式化的效果如下:

/*
这个是一个类
*/
function xx(num, str) {//说明
var a = num;
this.aa = a;
this.bb = function () {
alert(str);
};
this.cc = function () {
for (var i = 0; i < 10; i++) {
document.title = i;
}
};
}
xx.prototype.dd = function () {
alert("d d kd");
};
var a = new xx(100, "hello"), b = new xx(0, "ttyp");
if (1 > 2) {
alert();
} else {
alert(" hell ");
}
a.bb();
b.dd();
alert(a.aa);


PS:楼主的代码很值得学习哈,收着先。
Go_Rush 2006-05-23
  • 打赏
  • 举报
回复
up
hbhbhbhbhb1021 2006-05-23
  • 打赏
  • 举报
回复
coder1 2006-05-22
  • 打赏
  • 举报
回复
帮顶
meizz 2006-05-22
  • 打赏
  • 举报
回复
}else

}aa();

还有点不甚完美的地方
DeluxWorld 2006-05-22
  • 打赏
  • 举报
回复
做个标记,研究一下~
加载更多回复(7)

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧