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 相关文章推荐
根据地区不同显示时间的javascript代码
Aug 13 Javascript
一段利用WSH修改和查看IP配置的代码
May 11 Javascript
JQuery循环滚动图片代码
Dec 08 Javascript
js实现同一页面可多次调用的图片幻灯切换效果
Feb 28 Javascript
jquery马赛克拼接翻转效果代码分享
Aug 24 Javascript
浅谈javascript的Array.prototype.slice.call
Aug 31 Javascript
微信小程序 九宫格实例代码
Jan 21 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
Feb 08 Javascript
Angular2下使用pdf插件的方法详解
Apr 29 Javascript
浅谈Postman解决token传参的问题
Mar 31 Javascript
vue-openlayers实现地图坐标弹框效果
Sep 24 Javascript
vue组件的路由高亮问题解决方法
May 11 Vue.js
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的配置文件php.ini
2006/10/09 PHP
PHP nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
2009/08/21 PHP
zend framework配置操作数据库实例分析
2012/12/06 PHP
php简单socket服务器客户端代码实例
2015/05/18 PHP
php实现可运算的验证码
2015/11/10 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
PHP简单获取随机数的常用方法小结
2017/06/07 PHP
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
jquery datepicker参数介绍和示例
2014/04/15 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
ES6入门教程之let、const的使用方法
2019/04/13 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
python获取文件扩展名的方法
2015/07/06 Python
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
2019/06/17 Python
Python如何输出整数
2020/06/07 Python
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
美国翻新电子产品商店:The Store
2019/10/08 全球购物
请解释在new与override的区别
2012/10/29 面试题
思想汇报范文
2013/11/04 职场文书
《圆明园的毁灭》教学反思
2014/02/28 职场文书
电工技术比武方案
2014/05/11 职场文书
关于环保的建议书
2014/05/12 职场文书
2014教师年度工作总结
2014/11/10 职场文书
寒假安全保证书
2015/02/28 职场文书
靠谱准确的求职信
2019/04/02 职场文书
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS