js将金额转换成大写

function ConvertDataTo(str) {
    var tmpstr = "";
    var rstr = "";
    var sp = str.split('.');
    var str = sp[0];
    var strlen = str.length;
    if (strlen <= 4)//数字长度小于四位
    {
        rstr = ConvertDigit(str);
        if (rstr.substr(rstr.length - 1, 1) == "零") {
            rstr = rstr.substr(0, rstr.length - 1);
        }
        
    }
    else {
        if (strlen <= 8)//数字长度大于四位,小于八位
        {
            tmpstr = str.substr(strlen - 4, 4); //先截取最后四位数字
            rstr = ConvertDigit(tmpstr); //转换最后四位数字
            tmpstr = str.substr(0, strlen - 4); //截取其余数字
            //将两次转换的数字加上万后相连接
            rstr = ConvertDigit(tmpstr) + "万" + rstr;
            rstr = rstr.replace("零万", "万");
            rstr = rstr.replace("零零", "零");
        }
        else
            if (strlen <= 12)//数字长度大于八位,小于十二位
            {
                tmpstr = str.substr(strlen - 4, 4); //先截取最后四位数字
                rstr = ConvertDigit(tmpstr); //转换最后四位数字
                tmpstr = str.substr(strlen - 8, 4); //再截取四位数字
                rstr = ConvertDigit(tmpstr) + "万" + rstr;
                tmpstr = str.substr(0, strlen - 8);
                rstr = ConvertDigit(tmpstr) + "億" + rstr;
                rstr = rstr.replace("零億", "億");
                rstr = rstr.replace("零万", "零");
                rstr = rstr.replace("零零", "零");
                rstr = rstr.replace("零零", "零");
            }
    }
    strlen = rstr.length;
    if (strlen >= 2) {
        switch (rstr.substr(strlen - 2, 2)) {
            case "佰零": rstr = rstr.substr(0, strlen - 2) + "佰"; break;
            case "仟零": rstr = rstr.substr(0, strlen - 2) + "仟"; break;
            case "万零": rstr = rstr.substr(0, strlen - 2) + "万"; break;
            case "億零": rstr = rstr.substr(0, strlen - 2) + "億"; break;

        }
    }
    if (sp.length == 1) {
        rstr = rstr + "元整";
    }
    else {
        if (rstr.length > 0) {
            rstr = rstr + "元";
        }
    }
    if (sp.length == 2) {
        rstr += ConvertXiaoShu(sp[1]);
    }
    return rstr;
}
/// 
/// 转换数字(小数部分)
/// 
/// 需要转换的小数部分数字字符串
/// 转换成中文大写后的字符串
function ConvertXiaoShu(str) {
    var strlen = str.length;
    var rstr;
    if (strlen == 1) {
        rstr = ConvertChinese(str) + "角";
        return rstr;
    }
    else if (strlen == 2) {
        var tmpstr = str.substr(0, 1);
        rstr = ConvertChinese(tmpstr) + "角";
        tmpstr = str.substr(1, 1);
        rstr += ConvertChinese(tmpstr) + "分";
        rstr = rstr.replace("零分", "");
        rstr = rstr.replace("零角", "");
        return rstr;
    }
    else if (strlen == 3) {
        var tmpstr = str.substr(0, 1);
        rstr = ConvertChinese(tmpstr) + "角";
        tmpstr = str.substr(1, 1);
        rstr += ConvertChinese(tmpstr) + "分";
        tmpstr = str.substr(2, 1);
        rstr += ConvertChinese(tmpstr) + "厘";
        rstr = rstr.replace("零分", "");
        rstr = rstr.replace("零角", "");
        rstr = rstr.replace("零厘", "");
        return rstr;
    }
}

/// 
/// 转换数字
/// 
/// 转换的字符串(四位以内)
/// 
function ConvertDigit(str) {
    var strlen = str.length;
    var rstr = "";
    switch (strlen) {
        case 1: rstr = ConvertChinese(str); break;
        case 2: rstr = Convert2Digit(str); break;
        case 3: rstr = Convert3Digit(str); break;
        case 4: rstr = Convert4Digit(str); break;
    }
    rstr = rstr.replace("拾零", "拾");
    strlen = rstr.length;
    return rstr;
}


/// 
/// 转换四位数字
/// 
function Convert4Digit(str) {
    var str1 = str.substr(0, 1);
    var str2 = str.substr(1, 1);
    var str3 = str.substr(2, 1);
    var str4 = str.substr(3, 1);
    var rstring = "";
    rstring += ConvertChinese(str1) + "仟";
    rstring += ConvertChinese(str2) + "佰";
    rstring += ConvertChinese(str3) + "拾";
    rstring += ConvertChinese(str4);
    rstring = rstring.replace("零仟", "零");
    rstring = rstring.replace("零佰", "零");
    rstring = rstring.replace("零拾", "零");
    rstring = rstring.replace("零零", "零");
    rstring = rstring.replace("零零", "零");
    rstring = rstring.replace("零零", "零");
    return rstring;
}
/// 
/// 转换三位数字
/// 
function Convert3Digit(str) {
    var str1 = str.substr(0, 1);
    var str2 = str.substr(1, 1);
    var str3 = str.substr(2, 1);
    var rstring = "";
    rstring += ConvertChinese(str1) + "佰";
    rstring += ConvertChinese(str2) + "拾";
    rstring += ConvertChinese(str3);
    rstring = rstring.replace("零佰", "零");
    rstring = rstring.replace("零拾", "零");
    rstring = rstring.replace("零零", "零");
    rstring = rstring.replace("零零", "零");
    return rstring;
}
/// 
/// 转换二位数字
/// 
function Convert2Digit(str) {
    var str1 = str.substr(0, 1);
    var str2 = str.substr(1, 1);
    var rstring = "";
    rstring += ConvertChinese(str1) + "拾";
    rstring += ConvertChinese(str2);
    rstring = rstring.replace("零拾", "零");
    rstring = rstring.replace("零零", "零");
    return rstring;
}
/// 
/// 将一位数字转换成中文大写数字
/// 
function ConvertChinese(str) {
    //"零壹贰叁肆伍陆柒捌玖拾佰仟万億圆整角分"
    var cstr = "";
    switch (str) {
        case "0": cstr = "零"; break;
        case "1": cstr = "壹"; break;
        case "2": cstr = "贰"; break;
        case "3": cstr = "叁"; break;
        case "4": cstr = "肆"; break;
        case "5": cstr = "伍"; break;
        case "6": cstr = "陆"; break;
        case "7": cstr = "柒"; break;
        case "8": cstr = "捌"; break;
        case "9": cstr = "玖"; break;
    }
    return (cstr);
}
View Code

 

posted @ 2013-08-23 15:41  lonlywaiting  阅读(157)  评论(0编辑  收藏  举报