此组件可以像 jQuery 一样注册成为JS组件直接调用,同时包括金额数字格式化功能,只要在页面中引入该文件就可以用Tools.formatMoney(...) 或 T.formatMoney(...) 来格式化金额。
如果能帮到您,请在文章下方留言、点赞、收藏,以表对我的鼓励与认可。
工具JS组件,包括2个方法
1、金额按千位逗号分割
alert( Tools.formatMoney(1234.345) ); //=>1,234.35
alert( Tools.formatMoney(-1234.345) ); //=>-1,234.35
2、将千分位格式的数字字符串转换为浮点数
alert( Tools.unformatMoney("1,234.345") ); //=>1234.35
alert( Tools.unformatMoney("-1,234.345") ); //=>-1234.35
完整JS文件代码如下,可以复制到单独js文件中使用
/**
* 工具JS组件
* 1.金额按千位逗号分割
* 2.将千分位格式的数字字符串转换为浮点数
* Example
* <code>
* alert(Tools.formatMoney(1234.345)); //=>1,234.35
* alert(Tools.formatMoney(-1234.345)); //=>-1,234.35
* alert(Tools.unformatMoney("1,234.345")); //=>1234.35
* alert(Tools.unformatMoney("-1,234.345")); //=>-1234.35
* </code>
*/
(function(window, undefined) {
var Tools = {
/**
* 金额按千位逗号分割,数字千分位格式化
* @public
* @param mixed mVal 数值
* @return string
*
* Example
* <code>
* alert(Tools.formatMoney(1234.345)); //=>1,234.35
* alert(Tools.formatMoney(-1234.345)); //=>-1,234.35
* </code>
*/
formatMoney:function(mVal,suf){
var num = mVal.toString();
if (!num) return "0.00";
num = num.toString().replace(/\$|\,/g, ''); // 去除$符号
if (isNaN(num)) num = "0.00";
var sign = (num == (num = Math.abs(num)));
num = Math.floor(num * 100 + 0.50000000001);
var cents = num % 100;
num = Math.floor(num / 100).toString();
if (cents < 10) cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++) num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3));
return ( (suf?suf:"") + ((sign) ? '': '-') + '' + num + '.' + cents);
},
/**
* 将千分位格式的数字字符串转换为浮点数
* @public
* @param string sVal 数值字符串
* @return float
*
* Example
* <code>
* alert(Tools.unformatMoney("1,234.345")); //=>1234.35
* alert(Tools.unformatMoney("-1,234.345")); //=>-1234.35
* </code>
*/
unformatMoney:function(sVal){
var fTmp = parseFloat(sVal.replace(/,/g, ''));
return (isNaN(fTmp) ? 0 : fTmp);
}
};
window.Tools = window.T = Tools;
})(window);