日期:2014-05-16 浏览次数:20534 次
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>JS格式化工具,js在线格式化工具,javascript格式化 - web标准化,div教程,DIV+CSS布局,web2.0标准</title> <meta name="keywords" content="JS格式化工具,js在线格式化工具,javascript格式化"/> <meta name="description" content="js格式化工具可以将javascript/JS代码转换为格式排版格式或压缩格式"/> <link href="/css2008/layout.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="/css2008/func.js"></script> </head> <body> <div id="mainContent"> <div id="content"> <div class="mainpanel"> <div style=" padding:10px;"> <h2 style="text-align:center; padding:5px;">JS格式化工具—可将js代码格式化成经典或微软排版格式,也可将js进行压缩</h2> <SCRIPT language=JavaScript> <!-- function CLASS_FORMAT(code) { //哈希表类 function Hashtable() { this._hash=new Object(); this.add=function (key,value) { if(typeof(key)!="undefined") { if(this.contains(key)==false) { this._hash[key]=typeof(value)=="undefined"?null:value; return true; }else { return false; } }else { return false; } } this.remove=function (key) { delete this._hash[key]; } this.count=function () { var i=0; for(var k in this._hash) { i++; }return i; } this.items=function (key) { return this._hash[key]; } this.contains=function (key) { return typeof(this._hash[key])!="undefined"; } this.clear=function () { for(var k in this._hash) { delete this._hash[k]; } } } this._caseSensitive=true; //字符串转换为哈希表 this.str2hashtable=function (key,cs) { var _key=key.split(/,/g); var _hash=new Hashtable(); var _cs=true; if(typeof(cs)=="undefined"||cs==null) { _cs=this._caseSensitive; }else { _cs=cs; } for(var i in _key) { if(_cs) { _hash.add(_key[i]); }else { _hash.add((_key[i]+"").toLowerCase()); } } return _hash; } //获得需要转换的代码 this._codetxt=code; if(typeof(syntax)=="undefined") { syntax=""; } this._deleteComment=false; //是否大小写敏感 this._caseSensitive=true; //可以后面加块语句的关键字 this._blockElement=this.str2hashtable("switch,if,while,try,finally"); //是函数申明 this._function=this.str2hashtable("function"); //本行括号内分号不做换行 this._isFor="for"; this._choiceElement=this.str2hashtable("else,catch"); this._beginBlock="{"; this._endBlock="}"; this._singleEyeElement=this.str2hashtable("var,new,return,else,delete,in,case"); //得到分割字符 this._wordDelimiters=" ,.?!;:\\/<>() {}[]\"'\r\n\t=+-|*%@#$^&"; //引用字符 this._quotation=this.str2hashtable("\",'"); //行注释字符 this._lineComment="//"; //转义字符 this._escape="\\"; //多行引用开始 this._commentOn="/*"; //多行引用结束 this._commentOff="*/"; //行结束词 this._rowEnd=";"; this._in="in"; this.isCompress=false; this.style=0; this._tabNum=0; this.format=function () { var codeArr=new Array(); var word_index=0; var htmlTxt=new Array(); if(this.isCompress) { this._deleteComment=true; } //得到分割字符数组(分词) for(var i=0;i<this._codetxt.length;i++) { if(this._wordDelimiters.indexOf(this._codetxt.charAt(i))==-1) { //找不到关键字 if(codeArr[word_index]==null||typeof(codeArr[word_index])=='undefined') { codeArr[word_index]=""; } codeArr[word_index]+=this._codetxt.charAt(i); }else { if(typeof(codeArr[word_index])!='undefined'&&codeArr[word_index].length>0) word_index++; codeArr[word_index++]=this._codetxt.charAt(i); } } var quote_opened=false; //引用标记 var slash_star_comment_opened=false; //多行注释标记 var slash_slash_comment_opened=false; //单行注释标记 var line_num=1; //行号 var quote_char=""; //引用标记类型 var function_opened=false; var bracket_open=false; var for_open=false; //按分割字,分块