Javascript将数字转化成为货币格式字符串


Posted in Javascript onJune 22, 2016

这里第一个方法是用JavaScript将数字number转换为货币字符串的格式(参数:保留小数位数,货币符号,整数部分千位分隔符,小数分隔符)

这里第二个方法是用简单的正则表达式将货币字符换转换为纯净的数字字符串,之后便可以将字符串转换为数字number
JavaScript Money Format(用prototype对Number进行扩展)

// Extend the default Number object with a formatMoney() method:
// usage: someVar.formatMoney(decimalPlaces, symbol, thousandsSeparator, decimalSeparator)
// defaults: (2, "$", ",", ".")
Number.prototype.formatMoney = function (places, symbol, thousand, decimal) {
  places = !isNaN(places = Math.abs(places)) ? places : 2;
  symbol = symbol !== undefined ? symbol : "$";
  thousand = thousand || ",";
  decimal = decimal || ".";
  var number = this,
    negative = number < 0 ? "-" : "",
    i = parseInt(number = Math.abs(+number || 0).toFixed(places), 10) + "",
    j = (j = i.length) > 3 ? j % 3 : 0;
  return symbol + negative + (j ? i.substr(0, j) + thousand : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousand) + (places ? decimal + Math.abs(number - i).toFixed(places).slice(2) : "");
};

如下便是一些转换实例:

// Default usage and custom precision/symbol :
var revenue = 12345678;
alert(revenue.formatMoney()); // $12,345,678.00
alert(revenue.formatMoney(0, "HK$ ")); // HK$ 12,345,678

// European formatting:
var price = 4999.99;
alert(price.formatMoney(2, "?", ".", ",")); // ?4.999,99

// It works for negative values, too:
alert((-500000).formatMoney(0, "£ ")); // £ -500,000

Currency to number ? removing money formatting (用正则表达式进行过滤)

var price = (12345.99).formatMoney(); // "$12,345.99"

// Remove non-numeric chars (except decimal point/minus sign):
priceVal = parseFloat(price.replace(/[^0-9-.]/g, '')); // 12345.99

这个方法仅仅应用于小数分隔符为"."的模式,如果小数分隔符是"," 那么正则表达式为/[^0-9-,]/g

 不用prototype对Number进行拓展的版本:

// To set it up as a global function:
function formatMoney(number, places, symbol, thousand, decimal) {
  number = number || 0;
  places = !isNaN(places = Math.abs(places)) ? places : 2;
  symbol = symbol !== undefined ? symbol : "$";
  thousand = thousand || ",";
  decimal = decimal || ".";
  var negative = number < 0 ? "-" : "",
    i = parseInt(number = Math.abs(+number || 0).toFixed(places), 10) + "",
    j = (j = i.length) > 3 ? j % 3 : 0;
  return symbol + negative + (j ? i.substr(0, j) + thousand : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousand) + (places ? decimal + Math.abs(number - i).toFixed(places).slice(2) : "");
}

// To create it as a library method:
myLibrary.formatMoney = function (number, places, symbol, thousand, decimal) {
  /* as above */
}

// Example usage:
formatMoney(54321); // $54,321
myLibrary.formatMoney(12345, 0, "£ "); // £ 12,345

以上就是本文的全部内容,了解更多JavaScript的语法,大家可以查看:《JavaScript 参考教程》、《JavaScript代码风格指南》,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使用EXT实现无刷新动态调用股票信息
Nov 01 Javascript
jquery遍历checkbox的注意事项说明
Feb 21 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
Jul 18 Javascript
js实现点击向下展开的下拉菜单效果代码
Sep 01 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
May 23 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
May 26 Javascript
jQuery 实现图片的依次加载图片功能
Jul 06 jQuery
weex slider实现滑动底部导航功能
Aug 28 Javascript
Bootstrap实现翻页效果
Nov 27 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
Apr 26 jQuery
解决vue项目router切换太慢问题
Jul 19 Javascript
js实现车辆管理系统
Aug 26 Javascript
jQuery soColorPacker 网页拾色器
Jun 22 #Javascript
DIV+CSS+jQ实现省市联动可扩展
Jun 22 #Javascript
Javascript对象字面量的理解
Jun 22 #Javascript
Javascript闭包与函数柯里化浅析
Jun 22 #Javascript
JS中innerHTML和pasteHTML的区别实例分析
Jun 22 #Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
Jun 22 #Javascript
浅析JavaScript中命名空间namespace模式
Jun 22 #Javascript
You might like
php下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
php将文本文件转换csv输出的方法
2014/12/31 PHP
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
解析JSON对象与字符串之间的相互转换
2013/12/18 Javascript
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
python+opencv实现的简单人脸识别代码示例
2017/11/14 Python
python去掉空白行的多种实现代码
2018/03/19 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
与Django结合利用模型对上传图片预测的实例详解
2019/08/07 Python
详解如何在cmd命令窗口中搭建简单的python开发环境
2019/08/29 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
Pycharm操作Git及GitHub的步骤详解
2020/10/27 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
HTML5新增加的功能详解
2016/09/05 HTML / CSS
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
美国高端婴童品牌:Hanna Andersson
2016/10/30 全球购物
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
大一学生职业生涯规划
2014/03/11 职场文书
党员学习党的群众路线思想汇报(5篇)
2014/09/10 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
2014年语文教师工作总结
2014/12/18 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python