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 05 Javascript
JS读取XML文件示例代码
Nov 15 Javascript
jquery等待效果示例
May 01 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
Jun 05 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
Nov 30 Javascript
javascript模块化简单解析
Apr 07 Javascript
详解如何用模块化的方式写vuejs
Dec 16 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
Apr 02 Javascript
Vue-cli项目部署到Nginx服务器的方法
Nov 01 Javascript
vue实现带过渡效果的下拉菜单功能
Feb 19 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
Aug 07 jQuery
如何vue使用el-table遍历循环表头和表体数据
Apr 26 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的ASP防火墙
2006/10/09 PHP
使用字符串函数输出整数化的PHP版本号
2006/10/09 PHP
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
php验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
PHP微信开发之有道翻译
2016/06/23 PHP
CL vs ForZe BO5 第一场 2.13
2021/03/10 DOTA
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
javascript实现 在光标处插入指定内容
2007/05/25 Javascript
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
3分钟快速搭建nodejs本地服务器方法运行测试html/js
2017/04/01 NodeJs
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
微信小程序获取用户openid的实现
2018/12/24 Javascript
vue swipeCell滑动单元格(仿微信)的实现示例
2020/09/14 Javascript
vue的webcamjs集成方式
2020/11/16 Javascript
vue 递归组件的简单使用示例
2021/01/14 Vue.js
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
python中from module import * 的一个坑
2014/07/20 Python
python实现一次创建多级目录的方法
2015/05/15 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
2019/05/04 Python
python OpenCV GrabCut使用实例解析
2019/11/11 Python
Python运行DLL文件的方法
2020/01/17 Python
Python自动重新加载模块详解(autoreload module)
2020/04/01 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
Python模拟登录requests.Session应用详解
2020/11/17 Python
亚马逊墨西哥站:Amazon.com.mx
2018/08/26 全球购物
车间班组长岗位职责
2013/11/13 职场文书
大学生学习自我评价
2014/01/13 职场文书
高中体育教学反思
2014/01/29 职场文书
幼儿园体操比赛口号
2015/12/25 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书
Go遍历struct,map,slice的实现
2021/06/13 Golang
python读取mnist数据集方法案例详解
2021/09/04 Python