js人民币转大写

<input type="text" oninput="OnInput (event)" value="1234567">
<p id="aa"></p>
function OnInput(event) {
    var j = numToCny(event.target.value);
    $("#aa").text(j);
}
$("#aa").text(numToCny(1234567));

function numToCny(num) {
    var capUnit = ['万', '亿', '万', '圆', ''];
    var capDigit = {
        2 : ['角', '分', ''],
        4 : ['仟', '佰', '拾', '']
    };
    var capNum = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
    if (((num.toString()).indexOf('.') > 16) || (isNaN(num))) return '';
    num = (Math.round(num * 100) / 100).toString();
    num = ((Math.pow(10, 19 - num.length)).toString()).substring(1) + num;
    var i, ret, j, nodeNum, k, subret, len, subChr, CurChr = [];
    for (i = 0, ret = ''; i < 5; i++, j = i * 4 + Math.floor(i / 4)) {
        nodeNum = num.substring(j, j + 4);
        for (k = 0, subret = '', len = nodeNum.length; ((k < len) && (parseInt(nodeNum.substring(k)) != 0)); k++) {
            CurChr[k % 2] = capNum[nodeNum.charAt(k)] + ((nodeNum.charAt(k) == 0) ? '': capDigit[len][k]);
            if (! ((CurChr[0] == CurChr[1]) && (CurChr[0] == capNum[0]))) if (! ((CurChr[k % 2] == capNum[0]) && (subret == '') && (ret == ''))) subret += CurChr[k % 2];
        }
        subChr = subret + ((subret == '') ? '': capUnit[i]);
        if (! ((subChr == capNum[0]) && (ret == ''))) ret += subChr;
    }
    ret = (ret == '') ? capNum[0] + capUnit[3] : ret;
    return ret;
}
原文地址:https://www.cnblogs.com/phpfensi/p/7298695.html