首页 > 解决方案 > 使用会计原则格式化负数的制表器

问题描述

喜欢这个工具。但是使用内置的格式化程序,我无法弄清楚如何在负数时用括号而不是负数来格式化货币。

就像 (1000) 而不是 -1000

如果我需要做一些定制的事情,我也可以使用它。

标签: tabulator

解决方案


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;
    },

推荐阅读