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 相关文章推荐
ECMAScript 基础知识
Jun 29 Javascript
JQuery中的$.getJSON 使用说明
Mar 10 Javascript
阻止子元素继承父元素事件具体思路及实现
May 02 Javascript
jquery动态改变form属性提交表单
Jun 03 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
Nov 16 Javascript
Vue-Router实现页面正在加载特效方法示例
Feb 12 Javascript
JavaScript实现简单的文本逐字打印效果示例
Apr 12 Javascript
Vue实现根据hash高亮选项卡
May 27 Javascript
如何在微信小程序中存setStorage
Dec 13 Javascript
vue实现商品列表的添加删除实例讲解
May 14 Javascript
django简单的前后端分离的数据传输实例 axios
May 18 Javascript
vue-drawer-layout实现手势滑出菜单栏
Nov 19 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
win2003服务器使用WPS的COM组件的一些问题解决方法
2012/01/11 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
javascript第一课
2007/02/27 Javascript
在JS中最常看到切最容易迷惑的语法(转)
2010/10/29 Javascript
Javascript Request获取请求参数如何实现
2012/11/28 Javascript
简易js代码实现计算器操作
2013/04/15 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
2017/07/27 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
JavaScript 实现同时选取多个时间段的方法
2019/10/17 Javascript
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
对python中的pop函数和append函数详解
2018/05/04 Python
详解python selenium 爬取网易云音乐歌单名
2019/03/28 Python
python使用opencv对图像mask处理的方法
2019/07/05 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
香港交友网站:be2香港
2018/07/22 全球购物
波兰购物网站:MALL.PL
2019/05/01 全球购物
大学学年自我鉴定
2013/10/28 职场文书
护理实习自我鉴定
2013/12/14 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python
Python实现学生管理系统(面向对象版)
2021/06/24 Python
24年收藏2000多部退役军用电台
2022/02/18 无线电