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

Javascript
javascript实现的动态添加表单元素input,button等(appendChild)
javascript动态添加单元格的脚本代码
[原创]仿google adsense颜色选择器代码,从中易广告联盟程序提取
asp javascript 实现关闭窗口时保存数据的办法
javascript 下拉框显示当前日期
惊云JS随机排序程序随机显示信息-每次新闻显示顺序都不一样
javascript下有关dom以及xml节点访问兼容问题
js 复制功能 支持 for IE/FireFox/mozilla/ns
css图片自适应大小
比较简单的一个符合web标准的JS调用flash方法
javascript数组组合成字符串的脚本
XRegExp 0.2: Now With Named Capture
jQuery 研究心得 取得属性的值
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
Prototype1.6 JS 官方下载地址
jquery 指南/入门基础
jquery api参考 visualjquery 中国线路 速度快
js控制fieldset高度的代码
document.documentElement && document.documentElement.scrollTop
js同时按下两个方向键

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


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