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 相关文章推荐
jquery中插件实现自动添加用户的具体代码
Nov 15 Javascript
Javascript变量作用域详解
Dec 06 Javascript
jquery实现勾选复选框触发事件给input赋值
Feb 01 Javascript
js随机生成网页背景颜色的方法
Feb 26 Javascript
Dojo获取下拉框的文本和值实例代码
May 27 Javascript
Bootstrap导航条鼠标悬停下拉菜单
Jan 04 Javascript
TableSort.js表格排序插件使用方法详解
Feb 10 Javascript
jQuery自定义图片上传插件实例代码
Apr 04 jQuery
手把手教你使用vue-cli脚手架(图文解析)
Nov 08 Javascript
js设置默认时间跨度过程详解
Jul 17 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
Oct 24 Javascript
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
Jan 03 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
DC宇宙的第一个英雄,堪称动漫史鼻祖,如今成为美国文化的象征
2020/04/09 欧美动漫
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
js验证模型自我实现的具体方法
2013/06/21 Javascript
jquery触发a标签跳转事件示例代码
2013/07/21 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
基于JavaScript实现轮播图代码
2016/07/14 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
使用xampp将angular项目运行在web服务器的教程
2019/09/16 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
js实现录音上传功能
2019/11/22 Javascript
jQuery实现轮播图效果
2019/11/26 jQuery
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
2020/02/12 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
Python 可爱的大小写
2008/09/06 Python
python实现通过shelve修改对象实例
2014/09/26 Python
用Python解决计数原理问题的方法
2016/08/04 Python
Python处理文本文件中控制字符的方法
2017/02/07 Python
Python实现对字符串的加密解密方法示例
2017/04/29 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
python五子棋游戏的设计与实现
2019/06/18 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
澳大利亚珍珠首饰购物网站:Vayo Pearls
2019/03/11 全球购物
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
工商学院毕业生个人自我评价
2013/09/19 职场文书
幼师专业毕业生自荐信
2013/09/29 职场文书
求职自荐信
2013/12/14 职场文书
毕业生工作求职信
2014/06/30 职场文书
小学生植树节活动总结
2014/07/04 职场文书
大一新生期末自我评价
2014/09/12 职场文书
毕业生见习报告总结
2014/11/08 职场文书
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL