「代码片段」金额小写转大写

JavaScript 金额小写转大写

function toUpper(n) {
    // 不是数字返回空字符串
    if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)) return "";
    var unit = "仟佰拾亿仟佰拾万仟佰拾元角分",
    cn = "零壹贰叁肆伍陆柒捌玖",
    str = "";
    n += "00";
    var p = n.indexOf('.');
    if (p >= 0) n = n.substring(0, p) + n.substr(p + 1, 2);
    unit = unit.substr(unit.length - n.length);
    for (var i = 0; i < n.length; i++) {
        str += cn[n[i]] + unit[i]
    }
    return str.replace(/零(仟|佰|拾|角)/g, "零").replace(/(零)+/g, "零")
           .replace(/零(万|亿|元)/g, "$1").replace(/(亿)万|壹(拾)/g, "$1$2")
           .replace(/^元零?|零分/g, "").replace(/元$/g, "元整");

}
posted @ 2019-03-22 11:20  张金麒  阅读(237)  评论(0)    收藏  举报