jquery金額數字轉為大寫數字

小粉优化大师發表於2024-04-24
layui.define(['jquery'], function(exports) {
    var jQuery = layui.jquery,
        $ = layui.jquery;

    $.digitChineseUppercase = function (debit) {
        var fraction = ['角', '分'];
        var digit = [
            '零', '壹', '貳', '叄', '肆',
            '伍', '陸', '柒', '捌', '玖'
        ];
        var unit = [
            ['元', '萬', '億'],
            ['', '拾', '佰', '仟']
        ];
        var IsNum = Number(debit);
        if (!isNaN(IsNum)) {
            if (debit == 0) {
                return "";
            }

            var head = debit < 0 ? '負' : '';
            debit = Math.abs(debit);
            var s = '';
            for (var i = 0; i < fraction.length; i++) {
                s += (digit[Math.floor(debit * 100 / 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
            }
            s = s || '整';
            debit = Math.floor(debit);
            for (var i = 0; i < unit[0].length && debit > 0; i++) {
                var p = '';
                for (var j = 0; j < unit[1].length && debit > 0; j++) {
                    p = digit[debit % 10] + unit[1][j] + p;
                    debit = Math.floor(debit / 10);
                }
                s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
            }
            return head + s.replace(/(零.)*零元/, '元')
                .replace(/(零.)+/g, '零')
                .replace(/^整$/, '零元整');
        }
        else {
            return "";
        }
    }

    exports('numberutils');
});

相關文章