`

JS对文件大小的格式化等

阅读更多
tips: js通过[]取属性时,属性名得加双引号。
页面有输出附件大小,由于数据库里存在都是字节大小,所以在展示的时候都要进行格式化一下。
下面是采用java代码:
        String filename = ""; 
         float size=0f;
         String unit="";//单位
         float attchSize = Float.parseFloat(filesize);
         if(attchSize<1024){
           size = (float)(attchSize);
           unit=" 字节";
         }else{
          float k = (float)(attchSize/1024);
          if(k<1024){
            size = (float)(k);
            unit = " KB";
          }else{
           float m = (float)(k/1024);
            if(m<1024){
             size = (float)(m);
             unit = " MB";
            }else{
             size = (float)(m/1024);
             unit =" GB";
            }
          }
         }
         DecimalFormat formater=new DecimalFormat("#0.##");
         filename =formater.format(size).toString();
         if((filename .indexOf(".00"))!=-1){
          filename =filename .substring(0,filename .indexOf(".00"));
         }
         filename +=unit;

不过我感觉这样写不是太好,太多if,else,并且我现在是采用Ext来做前台框架,希望通过renderer来进行格式化处理。
网上找到一个php版本的,代码如下:
<? php
function  setupSize( $fileSize ) {    
     $size   =   sprintf ( " %u " ,   $fileSize );
     $sizename   =   array ( "  Bytes " ,   "  KB " ,   "  MB " ,   "  GB " ,   "  TB " ,   "  PB " ,   "  EB " ,   "  ZB " ,   "  YB " );    
     return   round ( $size / pow ( 1024 ,  ( $i   =   floor ( log ( $size ,   1024 )))) ,  3 )  .   $sizename [ $i ];
} 
echo  setupSize( ' 200000 ' )
?> 

没接触过php,不过大概根据它代码的意思用js写出代码如下:
     /*附件大小格式处理*/
function renderSize(value, p, record){

       var unitArr = new Array("Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"); 
       var index; 
       var srcsize = parseFloat(value); 
       var size =Math.round(srcsize/Math.pow(1024,(index=Math.floor(这里求log对数如何转换))),3); 

       return size+unitArr[index];

}

      我采用Math.log(srcsize ,1024)运行根本就找不到这个方法,查看API才知道,原来js里根本就没这个方法,它只有一个Math.log(x)是固定以e为底数的。
       最后才知原来可以通过任意底的对数
      function lg(x,n){
            return log(x)/log(n)
     }
     即:Math.log(x)/Math.log(1024)。
最后修改代码如下:
     /*
  四舍五入保留小数位数
  numberRound 被处理的数
  roundDigit  保留几位小数位
*/
function  roundFun(numberRound,roundDigit)   //处理金额 -by hailang  
{   
   if(numberRound>=0) {   
         var   tempNumber   =   parseInt((numberRound   *   Math.pow(10,roundDigit)+0.5))/Math.pow(10,roundDigit);   
         return   tempNumber;   
    }else{   
     numberRound1=-numberRound   
     var   tempNumber   =   parseInt((numberRound1   *   Math.pow(10,roundDigit)+0.5))/Math.pow(10,roundDigit);   
     return   -tempNumber;   
    }   
}  

/*附件大小格式处理*/
function renderSize(value, p, record){
  if(null==value||value==''){
    return "0 Bytes";
  }
  var unitArr = new Array("Bytes","KB","MB","GB","TB","PB","EB","ZB","YB");
  var index=0;
  
  
  var srcsize = parseFloat(value); 
  var size =roundFun(srcsize/Math.pow(1024,(index=Math.floor(Math.log(srcsize)/Math.log(1024)))),2); 
  return size+unitArr[index];
}


由于Math.round()是四舍五入截取整数,可我希望能保留两位小数,所以网上找到function  roundFun(numberRound,roundDigit) 这个方法。
/*附件大小格式处理*/
function renderSize(value, p, record){
  if(null==value||value==''){
    return "0 Bytes";
  }
  var unitArr = new Array("Bytes","KB","MB","GB","TB","PB","EB","ZB","YB");
  var index=0;

  var srcsize = parseFloat(value);
  var quotient = srcsize;
  while(quotient>1024){
    index +=1;
   quotient=quotient/1024;
  }
  return roundFun(quotient,2)+" "+unitArr[index];
}


分享到:
评论

相关推荐

    JS文件格式化工具

    JavaScript文件格式化工具是开发人员在处理代码时不可或缺的一个实用工具。它主要用于将压缩或混乱的JavaScript代码恢复成可读性更强、遵循特定编码规范的形式。这类工具的主要目的是提高代码的可维护性和团队协作...

    格式化及压缩js文件

    在JavaScript开发过程中,为了优化网页性能,我们经常会对JS文件进行格式化和压缩。格式化主要是为了让代码更易读、易维护,而压缩则是为了减少文件大小,加快页面加载速度。下面将详细介绍这两个过程。 首先,**...

    JS格式化工具

    6. **代码压缩**:对于生产环境,为了减少文件大小和加载时间,格式化工具可以将代码压缩为一行,移除不必要的空白和注释。 7. **代码风格转换**:允许用户在不同编码风格之间切换,例如ESLint、Airbnb等风格指南。...

    实用工具 格式化Html格式,格式代javasctip格式,javascript代码压缩

    "base.js", "jsformat.js", "jsformat2.js"可能是JavaScript代码格式化相关的文件,它们的作用是将无格式或混乱的JS代码转换为规范化的形式。格式化JavaScript代码可以确保每个函数、变量和语句都在适当的位置,使...

    JS/HTML格式化工具可脱机使用

    JavaScript(简称JS)和HTML是Web开发中的基础语言,它们的源代码往往需要进行格式化以保持整洁和可读性。在线格式化工具是开发者常用的辅助工具,但它们依赖网络连接,这在某些情况下可能不便。为了满足离线环境下...

    EditPlus代码格式化

    3. **JavaScript代码格式化**:对于JavaScript代码,EditPlus可以智能地识别函数、变量、条件语句等,并按标准格式重新排列,使得JS代码结构清晰,便于理解和调试。 4. **代码高亮**:除了格式化,EditPlus还支持...

    js压缩和格式化

    JavaScript压缩的主要目的是减少文件大小,从而加快页面加载速度。这通常通过删除不必要的字符,如空格、换行符、注释,以及对变量进行混淆来实现。压缩后的代码虽然难以阅读,但对浏览器来说执行效率更高。 1. ...

    js_html格式化工具

    然而,当JS和HTML代码未经格式化时,可能会出现缩进不一致、换行混乱等问题,这不仅影响代码的可读性,还可能造成调试困难。 格式化工具通常提供以下功能: 1. **缩进调整**:用户可以根据个人喜好选择使用空格...

    js代码格式化工具,梳理凌乱的JS代码比较实用

    Dreamweaver以其强大的代码编辑器而知名,它能对包括JS在内的多种编程语言进行智能格式化和颜色高亮,提高开发效率。 使用JS代码格式化工具可以大大提高工作效率,尤其是在团队合作项目中,统一的代码风格有助于...

    css html javascript 代码格式化源码

    这样可以显著减小CSS文件大小,提高网页加载速度。例如,`css format`工具可能也包含了压缩功能,用于生产环境。 3. **HTML代码格式化**: HTML(HyperText Markup Language)是构建网页的基础。格式化的HTML代码...

    css/js 压缩格式化工具

    - 代码格式化通常包括:添加缩进、调整换行、统一注释风格等。 2. **自动格式化工具** - **Prettier**:一款广泛使用的代码格式化工具,支持多种编程语言,包括JavaScript和CSS。它可以根据预设的规则自动格式化...

    JavaScript 格式化工具

    8. **代码压缩**:除了格式化,一些工具还提供代码压缩功能,通过删除空格、换行和不必要的字符来减小文件大小,提高页面加载速度。 9. **ES6+语法支持**:随着JavaScript新特性的引入,如箭头函数、模板字符串等,...

    js文件压缩成gzjs格式的方法和工具

    这将创建一个名为`script.js.gz`的新文件,这就是你的gzjs格式的JavaScript文件。 3. **浏览器支持**:虽然现代浏览器普遍支持自动解压Gzipped内容,但为了确保兼容性,服务器端需要设置HTTP头信息,告知浏览器...

    Notepad++插件,格式化js代码

    在Notepad++的菜单栏中,选择"Plugins" -&gt; "JS Tool",你将看到一系列的选项,如"Format JS"(格式化JavaScript)、"JS Minify"(压缩JavaScript)等。 这里特别提到了"JSMinNPP.dll"文件,它是jstool插件的一部分...

    Eclipse格式化Java和js.doc

    - 保存设置后,项目中的所有JavaScript文件都将按照设定的规则进行格式化。 #### 四、总结 通过本文介绍的方法,开发者可以轻松地使用Eclipse来格式化Java和JavaScript代码。无论是使用默认设置还是自定义格式化...

    JS-HTML格式化工具代码,web源码版

    【JS-HTML格式化工具代码】是一个用于web前端开发的实用工具,主要功能是帮助开发者对JavaScript和HTML代码进行格式化和压缩。这个工具的Web源码版本可以在任何支持HTML5的现代浏览器中直接运行,无需额外安装,极...

    JSer javascript格式化

    8. **代码压缩**:除了格式化,有些工具还提供代码压缩功能,去除不必要的空白字符和注释,减小文件大小,提高加载速度。 "jb51.net 脚本之家.htm"和"JSer javascript格式化 jb51.net 脚本之家_files"可能是指一个...

    小巧的js格式化工具Jsci

    3. **代码压缩**:除了基本的格式化功能,JSci还具备代码压缩能力,可以去除代码中的多余空白和注释,减小文件大小,提升网页加载速度。 4. **错误检查**:在格式化过程中,JSci可能还会检查代码中的语法错误,帮助...

    大json格式化工具-JSONedit-0.9.15.0

    1. **大文件支持**:JSONedit设计时考虑了处理大JSON文件的能力,即使文件大小超出了一些常见JSON查看器的限制,也能流畅地进行解析和格式化。 2. **实时编辑**:用户可以实时编辑JSON内容,修改后的数据会立即以...

Global site tag (gtag.js) - Google Analytics