ricegun

BlogJava 首页 新随笔 联系 聚合 管理
  2 Posts :: 4 Stories :: 3 Comments :: 0 Trackbacks

怎么用 javascript 做数据的格式化

 

作者:老 K

         我们在项目中都有用过金额数字及日期等数据格式化输出显示,比如前面加上“¥”,数值取小数点后两位,短日期时间等。一般的高级语言及开发工具都有提供相应的转换函数如 format 之类,可是我在最近做 web 网上银行相关的系统时,却遇到这个很麻烦的问题,就是 javascript 不提供这种 format 函数,查了些资料,知道 vbscript 是有格式化函数的,可是 vbscript 是微软专用的,无奈只好用正则表达式,可正则表达式也不能够很通用地解决各种类型转换问题,真的是很郁闷,无意中找到看到一个 AJAX 开发工具的演示(工具下载地址是点击链接),看到它的数据有显示“¥”和数值小数点后两位格式化,马上下载了看了下,发现它居然是用 javascript+XSL 实现了通用的格式化函数,下载 AJAX WebShop 后,我找到它的 system.js 这个文件,打开找到以下函数:

function FormatFloat(value,mask)

{

         return BasicFormat(value,mask,'FormatNumber')

}

function FormatDate(varDate, bstrFormat, varDestLocale)

{

         return BasicFormat(varDate,bstrFormat,'FormatDate',varDestLocale);

}

function FormatTime(varTime, bstrFormat, varDestLocale)

{

         return BasicFormat(varTime,bstrFormat,'FormatTime',varDestLocale);

}

function BasicFormat(value,mask,action,param)

{

         var xmlDoc;

         var xslDoc;

         var v=''+value+''+mask+'';

         xmlDoc=parseXML(v);

 

         var x;

         if(isIE)

                   x=''

         else

                   x='';

         x+='';

         if(isIE) {

                   x+=''+action+'('+value+',"'+mask+'"';

                   if(param)x+=','+param;

                   x+=')';

         }

         else

                   x+='';

 

         x+='';

         xslDoc=parseXML(x);

         var s;

         if(isIE)

          s= xmlDoc.transformNode(xslDoc)

         else{

                   //for mozilla/netscape

        var processor = new XSLTProcessor();

                   processor.importStylesheet(xslDoc);

                   var result = processor.transformToFragment(xmlDoc, xmlDoc);

        var xmls = new XMLSerializer();

        s = xmls.serializeToString(result);

         }

         return s;

}

看来他们对 xsl 用得可真是出神入化了,居然这样就可以实现很通用的格式化转换了,当然不客气了,直接加到我的函数库中哈。

         这个代码偶没有看得很懂,不过确实很管用,请对 XSL 精通的朋友分析下也好让我们学习下。

posted on 2007-01-05 09:22 第七日 阅读(955) 评论(1)  编辑  收藏

Feedback

# re: 怎么用javascript做数据的格式化[未登录] 2007-06-03 00:38 -274°C
如果可以的话,能给我一个吗?谢谢了。
我QQ 是 51411970
邮箱是 hechangmin1983@126.com
我对xsl也不熟悉,我只是希望在页面上用到格式化。
下载时候,我这边有点问题。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: