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 相关文章推荐
struts2 jquery 打造无限层次的树
Oct 23 Javascript
javascript中的new使用
Mar 20 Javascript
JavaScript(js)设置默认输入焦点(focus)
Dec 28 Javascript
JavaScript代码复用模式详解
Nov 07 Javascript
Underscore源码分析
Dec 30 Javascript
connection reset by peer问题总结及解决方案
Oct 21 Javascript
Bootstrap警告框(Alert)插件使用方法
Mar 21 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
Aug 25 Javascript
你可能不知道的CORS跨域资源共享
Mar 13 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
Jun 13 Javascript
JavaScript鼠标悬停事件用法解析
May 15 Javascript
Vue3为什么这么快
Sep 23 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
WIN98下Apache1.3.14+PHP4.0.4的安装
2006/10/09 PHP
PHP实现根据浏览器跳转不同语言页面代码
2013/08/02 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
JQuery扩展插件Validate 1 基本使用方法并打包下载
2011/09/05 Javascript
JavaScript获取指定元素位置的方法
2015/04/08 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
2016/02/15 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
2017/01/13 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
gearman的安装启动及python API使用实例
2014/07/08 Python
跟老齐学Python之dict()的操作方法
2014/09/24 Python
利用Python自动监控网站并发送邮件告警的方法
2016/08/24 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
django 控制页面跳转的例子
2019/08/06 Python
python 普通克里金(Kriging)法的实现
2019/12/19 Python
通过Turtle库在Python中绘制一个鼠年福鼠
2020/02/03 Python
python+requests接口压力测试500次,查看响应时间的实例
2020/04/30 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
linux下进程间通信的方式
2013/01/23 面试题
DELPHI面试题研发笔试试卷
2015/11/08 面试题
学生实习推荐信范文
2013/11/26 职场文书
函授教育个人学习的自我评价
2013/12/31 职场文书
家长会演讲稿范文
2014/01/10 职场文书
安全标准化汇报材料
2014/02/03 职场文书
《吃水不忘挖井人》教学反思
2014/04/15 职场文书
学校运动会报道稿
2014/09/23 职场文书
行政执法作风整顿剖析材料
2014/10/11 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
优秀护士事迹材料
2014/12/25 职场文书
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python
vue实现滑动解锁功能
2022/03/03 Vue.js
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python