日期:2014-05-16  浏览次数:20534 次

JS格式化工具—可将js代码格式化成经典或微软排版格式,也可将js进行压缩
<!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;
		//按分割字,分块