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

Javascript
window.onload 加载完毕的问题及解决方案(下)
jQuery 版本的文本输入框检查器Input Check
jquery Firefox3.5中操作select的问题
jquery 1.3.2 IE8中的一点点的小问题解决方法
javascript div 遮罩层封锁整个页面
javascript 页面只自动刷新一次
Javascript 区别浏览器 代码
checkbox 复选框不能为空
Prototype 学习 Prototype对象
Prototype 学习 工具函数学习($方法)
Prototype 学习 工具函数学习($A方法)
Prototype 学习 工具函数学习($w,$F方法)
Prototype Object对象 学习
Prototype Function对象 学习
Prototype Date对象 学习
JavaScript 事件对象的实现
JavaScript 事件查询综合
JavaScript 继承详解(一)
JavaScript 继承详解(二)
JavaScript 继承详解(三)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-10   浏览: 329 ::
收藏到网摘: 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>