`
yangyou230
  • 浏览: 1646811 次
文章分类
社区版块
存档分类

Javascript 货币格式化函数

 
阅读更多

平时我们有可能遇到需要把网站中的数字(通常是价格)用一种统一的方式显示出来,比如每隔3个字符加一个空格。如果数值比较大的话这种方法很有利于用户阅读。

用XSLT的朋友可能知道在XSL中可以用如下代码实现

<xsl:decimal-format name="currency" decimal-separator="." grouping-separator=" "/>

今天研究了一下,写了一个对应的javascript代码.

有趣的部分是方法二是用正则表达式实现的,非常明了!

function currencyFormatter(oNum,decimalSeparator,groupingNumber,groupingSeparator){

//check type

if(isNaN(parseFloat(oNum))){

alert(oNum + 'is not a number!');

return "";

}

//get sign and make oNum to abstract

var sign = (oNum == (oNum = Math.abs(oNum)));

//get fraction

var nDecimalString = oNum + '';

var nIndex = nDecimalString.indexOf('.');

var sFraction = '';

if(nIndex != -1){

sFraction = nDecimalString.substr(nIndex);

}

//get integer

var nInteger = parseInt(Math.floor(oNum));

var nInegerString = nInteger + '';

//insert separator

var aResult = [];

//method 1

/*

var length = nInegerString.length;

for (var i=length; i > 0 ; i-=groupingNumber) {

var nextI = i - groupingNumber;

if(nextI <= 0){

break;

}

aResult.unshift(nInegerString.substring(nextI,i));

aResult.unshift(groupingSeparator);

};

if(nextI <= 0){

aResult.unshift(nInegerString.substring(nextI,i));

}

*/

//method 2

aResult = nInegerString.split("");

aResult = aResult.reverse();

var exp= new RegExp("(//d{"+groupingNumber+"})",'g');

aResult = aResult.join('').replace(exp,'$1'+groupingSeparator)

aResult = aResult.split('');

aResult = aResult.reverse();

//put things together

var sReturn = ((sign)?'':'-') + aResult.join('') + sFraction;

if(decimalSeparator){

sReturn = sReturn.replace(".",decimalSeparator);

}

return sReturn;

}

例子:

currencyFormatter(-1234567890.323234,',',3,',')

结果 -1,234,567,890,323234

分享到:
评论

相关推荐

    javascript数字格式化为货币字符,数字格式化为大写货币

    javascript数字格式化为货币字符,数字格式化为大写货币函数

    采用js实现具有复杂字符串的格式化操作类库函数

    采用js实现具有复杂字符串的格式化操作类库函数,采用纯js实现,可以对含有正则表达式以及日期,货币等字符串进行格式标准化解析操作。

    JavaScript实战

    4.4.4 格式化货币值 100 4.4.5 创建随机数 101 4.5 日期和时间 103 4.5.1 获取月份 103 4.5.2获取星期几 104 4.5.3 获取时间 105 4.5.4 创建当前日期之外的日期 108 4.6 教程 109 4.6.1 概览 109 4.6.2 编写函数 110...

    change.js:一个以美分交易的愚蠢的简单货币计算库

    货币格式和舍入可以通过依赖注入进行自定义。设置需要Change 导出一个函数以支持将依赖项作为参数注入。 当您不想自定义任何内容时,这仅意味着您需要在需要时不带参数地调用它: var Change = require ( 'change-...

    isiTools:JavaScript工具框架

    入门级格式的书,格式为BCP-47 como的pe序列(en-US,GB-es-PA),格式为segundo es el valor de fecha。 Ambosparámetrosson opcionales。 获取:构造函数的构造函数it()。 GetTextWidth :基于文本的数据锚...

    jquery基础教程高清版PDF.part5.rar

     8.9.1 解析和格式化货币值   8.9.2 处理小数位   8.9.3 其他计算   8.10 删除商品   8.11 修改送货信息   8.12 完成的代码   8.13 小结  第9章 滑移和翻转   9.1 标题翻转效果   9.1.1...

    node-cldr:用于从CLDR中提取数据的node.js库(Unicode通用语言环境数据存储库)

    显示语言,时区,地区,脚本和货币的名称多个规则函数(转换为JavaScript函数) 基于规则的数字格式设置功能(转换为JavaScript函数) 提取代码最初是为编写的,但可以单独使用。 为了理解数据本身,您可能需要深入...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例097 货币数据的格式化输出 130 实例098 日期、时间的格式化输出 131 实例099 比对论坛中帖子的相似度 132 实例100 对用户注册的密码进行加密和解密 132 实例101 保护URL地址中传递的参数 133 实例102 解析URL...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例097 货币数据的格式化输出 130 实例098 日期、时间的格式化输出 131 实例099 比对论坛中帖子的相似度 132 实例100 对用户注册的密码进行加密和解密 132 实例101 保护URL地址中传递的参数 133 实例102 解析URL...

    精通AngularJS part1

    第4章显示与格式化数据109 41引用指令109 42显示表达式的求值结果110 插值指令110 利用ngBind渲染模型值111 AngularJS表达式中的HTML内容111 43条件化显示112 根据条件包含内容块114 44用ngRepeat指令渲染...

    PHP程序开发范例宝典III

    实例250 使用格式化函数转换查询条件的数据类型 385 实例251 在查询中使用字符串函数 387 实例252 在查询中使用日期函数 388 8.19 having语句应用 390 实例253 利用having语句过滤分组数据 390 ...

    PHP开发实战1200例源码

    实例097 货币数据的格式化输出 130 实例098 日期、时间的格式化输出 131 实例099 比对论坛中帖子的相似度 132 实例100 对用户注册的密码进行加密和解密 132 实例101 保护URL地址中传递的参数 133 实例102 解析URL...

    详解AngularJS过滤器的使用

    AnularJS的过滤器用来格式化需要展示给用户的数据,有很多实用的内置过滤器,也可以自己编写。 在HTML中的模板绑定符号{{ }}内通过|符号来调用过滤器。例如,假设我们希望将字符串 转换成大写,可以对字符串中的每个...

    freemarker总结

    在模板里对sequences和hashes初始化 sequences 1. [“you”,”me”,”he”] 2. 1..100 3. [ {“Akey”:”Avalue”},{“Akey1”:”Avalue1”}, {“Bkey”:”Bvalue”},{“Bkey1”:”Bvalue1”}, ] hashes {“you”:...

    Java-PHP-C#

    此外,JavaScript这种客户端的脚本语言也提供了对正则表达式的支持,现在正则表达式已经成为了一个通用的概念和工具,被各类技术人员所广泛使用。 在某个Linux网站上面有这样的话:"如果你问一下Linux爱好者最喜欢...

Global site tag (gtag.js) - Google Analytics