使用JavaScript实现金额格式化转换

目录

前言

  实现金额数字的每三位打”,”,便于识别金额大小。


实现

1
2
3
4
5
6
7
8
9
10
11
12
13
//s: 希望转换的金额数字;n:希望保留的小数位数
function formatMoney(s, n) {
n = n > 0 && n <= 20 ? n : 2;
//正则/[^\d\.-]/g表示去除传入字符串中非数字,非小数点,非负号以外的在金额中不应该出现的字符
s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";
var l = s.split(".")[0].split("").reverse();
var r = s.split(".")[1];
var t = "";
for(i = 0; i < l.length; i ++ ) {
t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");
}
return t.split("").reverse().join("") + "." + r;
}