怎么用javascript做数据的格式化
来源:互联网 发布:吉利知豆d2能跑多远 编辑:程序博客网 时间:2024/04/28 02:03
怎么用javascript做数据的格式化
我们在项目中都有用过金额数字及日期等数据格式化输出显示,比如前面加上“¥”,数值取小数点后两位,短日期时间等。一般的高级语言及开发工具都有提供相应的转换函数如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='<formats><format><value>'+value+'</value><mask>'+mask+'</mask></format></formats>';
xmlDoc=parseXML(v);
var x;
if(isIE)
x='<xsl:stylesheet xmlns:xsl="uri:xsl">'
else
x='<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">';
x+='<xsl:template match="/">';
if(isIE) {
x+='<xsl:eval>'+action+'('+value+',"'+mask+'"';
if(param)x+=','+param;
x+=')</xsl:eval>';
}
else
x+='<xsl:value-of select="format-number('+value+',/''+mask+'/')" />';
x+='</xsl:template></xsl:stylesheet>';
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精通的朋友分析下也好让我们学习下。
- 怎么用javascript做数据的格式化
- 怎么用javascript做数据的格式化
- 强制格式化的u盘数据怎么恢复回来呢?
- U盘被格式化了怎么恢复之前的数据
- JavaScript怎么做类型判断
- javascript中对数据文本格式化的思考
- javascript中对数据文本格式化的思考
- javascript中对数据文本格式化的思考_0
- javascript中对数据文本格式化的思考
- 合格的数据分析师是怎么做分析的?
- 怎么用javascript做一个文字滚动效果?
- 在windowform 中checklistbox的数据绑定 怎么做
- mysql 查询大数据导出都是怎么做的?
- 数据抽象-做什么重于怎么做
- 台式机硬盘被格式化数据怎么恢复
- 台式机硬盘被格式化数据怎么恢复
- U盘被格式化数据怎么恢复
- 硬盘格式化后怎么恢复数据
- PRM编写过程
- PetShop的系统架构设计
- 关于Calendar控件的不可用问题/
- 怎样将DHTML更多属性和事件扩展到AJAX WebShop的属性编辑器中
- Eclipse中用Ant无法执行JUnit任务,报错的解决办法
- 怎么用javascript做数据的格式化
- 分析AJAX WebShop DataSet与DBControl数据感应机制
- MSSQL Join总结
- 每周都有收获(2006.12.30) - 外连接(outer join)
- operator<<的重载,一个例子
- 防止任意形式的重复提交
- 阿宝的歌
- WSORM:为WSBLog写的简单ORM(二)
- 在PB中如何屏蔽掉ALT+F4按键