当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 简单的脚本帮你编排JScript程序中的缩进

Javascript
[JS源码]超长文章自动分页(客户端版)
注意 JavaScript 中 RegExp 对象的 test 方法
JavaScript快速排序
写的一段拖动对象的代码
用js取得鼠标所在位置的对象
如何在一段文字里点一下就可以在里面插入一段文字?
用js+cookie记录滚动条位置
记录滚动条位置(使用userdate)
强效、方便的表单通用检测JS 不错
个人总结的一些关于String、Function、Array的属性和用法
数据排序谁最快(javascript中的Array.prototype.sort PK 快速排序)
Prototype最新版(1.5 rc2)使用指南(1)
Prototype使用指南之string.js
Prototype使用指南之base.js
Prototype使用指南之enumerable.js
Prototype使用指南之array.js
Prototype使用指南之range.js
Prototype使用指南之ajax
Prototype使用指南之dom.js
Prototype使用指南之selector.js

Javascript 中的 简单的脚本帮你编排JScript程序中的缩进


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-10   浏览: 244 ::
收藏到网摘: n/a

µ±È»²»ÊÇͨÓÃÀ²¡£¡£
ÀýÈçÈç¹ûÔÚ""ÀïÃæÓÐ"{"ÄÇô¾ÍÂÒÁË¡£¡£


 


<textarea cols=64 rows=24 id=ta>
</textarea>
<hr>
<button onclick="trans()">trans</button>
<script>
function trans()
{
 var res=_trans(ta.value)
 ta.value=res;
}
function _trans(str)
{
 str=str.replace(/\r\n(\s)+/g,"\r\n");
 var arrRes=new Array();
 var arr=str.split("\r\n");
 var count=0;
 arrRes[arrRes.length]=arr[0];
 for(var i=1;i<arr.length-1;i++)
 {
  var p=(i*100/arr.length+"");
  status=Math.floor(p)+1+"%";
  count+=getCount(arr[i-1]);
  var c=count;
  if(arr[i].indexOf("case")==0)c--;
  if(arr[i].indexOf("}")==0)c--;
  if(arr[i].indexOf("{")!=0)
  {
   if(arr[i-1].indexOf("if")==0)c++;
   if(arr[i-1].indexOf("else")==0)c++;
   if(arr[i-1].indexOf("while")==0)c++;
   if(arr[i-1].indexOf("do")==0)c++;
   if(arr[i-1].indexOf("for")==0)c++;
  }
  arrRes[arrRes.length]=tabs(c)+arr[i]+"\r\n";


 }
 arrRes[arrRes.length]=arr[i];
 return arrRes.join("");
}
function tabs(count)
{
 var res="";
 for(var i=0;i<count;i++)
  res+="\t";
 return res;
}
function getCount(str)
{
 var c=0;
 for(var i=0;i<str.length;i++)
 {
  if(str.charAt(i)=="{")c++;
  else
  if(str.charAt(i)=="}")c--;
 }
 return c;
}
</script>