tabulator - 使用会计原则格式化负数的制表器
问题描述
喜欢这个工具。但是使用内置的格式化程序,我无法弄清楚如何在负数时用括号而不是负数来格式化货币。
就像 (1000) 而不是 -1000
如果我需要做一些定制的事情,我也可以使用它。
解决方案
moneyParen: function money(cell, formatterParams, onRendered) {
var floatVal = parseFloat(cell.getValue()),
number,
integer,
decimal,
rgx;
var decimalSym = formatterParams.decimal || ".";
var thousandSym = formatterParams.thousand || ",";
var symbol = formatterParams.symbol || "";
var after = !!formatterParams.symbolAfter;
var precision = typeof formatterParams.precision !== "undefined" ? formatterParams.precision : 2;
if (isNaN(floatVal)) {
return this.emptyToSpace(this.sanitizeHTML(cell.getValue()));
}
number = precision !== false ? floatVal.toFixed(precision) : floatVal;
number = String(number).split(".");
integer = number[0];
decimal = number.length > 1 ? decimalSym + number[1] : "";
var isNeg = (integer.includes("-"));
if (isNeg === true) { integer = integer.replace("-", ""); }
rgx = /(\d+)(\d{3})/;
while (rgx.test(integer)) {
integer = integer.replace(rgx, "$1" + thousandSym + "$2");
}
var retPt1 = after ? integer + decimal + symbol : symbol + integer + decimal;
return isNeg ? "(" + retPt1 + ")" : retPt1;
},
推荐阅读
- c# - 错误无法加载类型“TrollMarket.web.MyRoleProvider.RoleSite”
- javascript - 为什么我无法记录 Express 返回的错误消息?
- c# - 为 Home Controler 移除 /Home in route
- mysql - 是否可以在不使用两个 for 循环的情况下迭代 MySQL 数据库中的各种记录?
- zsh - 如何将 zinit 与 zsh 一起使用?追加或制作新文件?
- c# - C#从文件中读取所有字节
- javascript - 谷歌地图:如果用户拒绝地理定位,则调用另一种使用公共 IP 的方法
- tcl - 使用 TCL 替换 URI
- python - python内置函数Iter()重调的Object类是什么样子的?
- excel - 如何编写具有多个条件的此公式的 IF 语句