zoukankan      html  css  js  c++  java
  • 通用js模块03:formatutils.js

    /* ===========================================================
    模块说明:对于javascript字符串操作的一些补充功能
    charset:gb2312
    调用模块:stringutils.js
    搜集整理:sagahu@163.com
    最后修订:2011-12-12
    */


    // 把给定非负整数按照指定位数要求格式化为编码
    function coding(uint, len) {
        var code = '00000000000000000000000' + uint.toString();
        return code.substring(code.length - len, code.length);
    }

    // 格式化浮点数的显示:每3位一“,”分隔,小数点后保留指定精度位数。
    function formatFloat(value, prec) {
        var value1 = (Math.round(value * Math.pow(10, prec)) / Math.pow(10, prec)).toString();

        var arr = value1.split('.');
        var left = arr[0];
        var right = arr[1] == null ? '00000000000000000000' : arr[1] + '00000000000000000000';

        var left2 = '';
        for (j = left.length - 1; j >= 0; j--) {
            left2 = left.charAt(j) + left2;
            if ((left.length - j) == left.length) break;
            if ((left.length - j) % 3 == 0) left2 = ',' + left2;
        }

        var right2 = '';
        for (i = 0; i < right.length; i++) {
            right2 += right.charAt(i);
            if ((i + 1) == prec) break;
            if ((i + 1) % 3 == 0) right2 += ',';
        }

        return left2 + '.' + right2;
    }
    // 从格式化浮点数字符串还原为浮点数
    function formatFloatReverse(floatStr) {
        return parseFloat(floatStr.replace(/,/g, ''));
    }

    // 从小写货币数值转换为汉字大写字符串
    function bigMoney(value) {
        var intFen, i;
        var strArr, strCheck, strFen, strDW, strNum, strBig, strNow;

        if (trim(value) == "") {
            return "零";
        }
        if (isNaN(value)) {
            strErr = "数据" + value + "非法!";
            alert(strErr);
            return "";
        }
        strCheck = value + ".";
        strArr = strCheck.split(".");
        strCheck = strArr[0];
        var len = strCheck.length;
        if (len > 12) {
            strErr = "数据" + value + "过大,无法处理!";
            alert(strErr);
            return "";
        }
        try {
            i = 0;
            strBig = "";
            var s00 = "00";
            var svalue = value + "";
            var ipos = svalue.indexOf(".");
            var iiLen = svalue.length;
            if (ipos < 0) {
                strFen = svalue + "00";
            } else if (ipos == iiLen - 2) {
                strFen = svalue.substring(0, iiLen - 2) + svalue.substring(iiLen - 1, iiLen) + "0";
            } else if (ipos == iiLen - 3) {
                strFen = svalue.substring(0, iiLen - 3) + svalue.substring(iiLen - 2, iiLen);
            } else {
                strFen = svalue.substring(0, ipos) + svalue.substring(ipos + 1, ipos + 3);
            }
            intFen = strFen.length;
            strArr = strFen.split("");
            while (intFen != 0) {
                i = i + 1;
                switch (i) {
                    case 1: strDW = "分"; break;
                    case 2: strDW = "角"; break;
                    case 3: strDW = "元"; break;
                    case 4: strDW = "拾"; break;
                    case 5: strDW = "佰"; break;
                    case 6: strDW = "仟"; break;
                    case 7: strDW = "万"; break;
                    case 8: strDW = "拾"; break;
                    case 9: strDW = "佰"; break;
                    case 10: strDW = "仟"; break;
                    case 11: strDW = "亿"; break;
                    case 12: strDW = "拾"; break;
                    case 13: strDW = "佰"; break;
                    case 14: strDW = "仟"; break;
                }
                switch (strArr[intFen - 1]) {
                    case "1": strNum = "壹"; break;
                    case "2": strNum = "贰"; break;
                    case "3": strNum = "叁"; break;
                    case "4": strNum = "肆"; break;
                    case "5": strNum = "伍"; break;
                    case "6": strNum = "陆"; break;
                    case "7": strNum = "柒"; break;
                    case "8": strNum = "捌"; break;
                    case "9": strNum = "玖"; break;
                    case "0": strNum = "零"; break;
                }

                strNow = strBig.split("");
                if ((i == 1) && (strArr[intFen - 1] == "0")) {
                    strBig = "整";
                }
                else if ((i == 2) && (strArr[intFen - 1] == "0")) {
                    if (strBig != "整")
                        strBig = "零" + strBig;
                }
                else if ((i == 3) && (strArr[intFen - 1] == "0")) {
                    strBig = "元" + strBig;
                }
                else if ((i < 7) && (i > 3) && (strArr[intFen - 1] == "0") && (strNow[0] != "零") && (strNow[0] != "元")) {
                    strBig = "零" + strBig;
                }
                else if ((i < 7) && (i > 3) && (strArr[intFen - 1] == "0") && (strNow[0] == "零"))
                { }
                else if ((i < 7) && (i > 3) && (strArr[intFen - 1] == "0") && (strNow[0] == "元"))
                { }
                else if ((i == 7) && (strArr[intFen - 1] == "0")) {
                    strBig = "万" + strBig;
                }
                else if ((i < 11) && (i > 7) && (strArr[intFen - 1] == "0") && (strNow[0] != "零") && (strNow[0] != "万")) {
                    strBig = "零" + strBig;
                }
                else if ((i < 11) && (i > 7) && (strArr[intFen - 1] == "0") && (strNow[0] == "万"))
                { }
                else if ((i < 11) && (i > 7) && (strArr[intFen - 1] == "0") && (strNow[0] == "零"))
                { }
                else if ((i < 11) && (i > 8) && (strArr[intFen - 1] != "0") && (strNow[0] == "万") && (strNow[2] == "仟")) {
                    strBig = strNum + strDW + "万零" + strBig.substring(1, strBig.length);
                }
                else if (i == 11) {
                    if ((strArr[intFen - 1] == "0") && (strNow[0] == "万") && (strNow[2] == "仟")) {
                        strBig = "亿" + "零" + strBig.substring(1, strBig.length);
                    }
                    else if ((strArr[intFen - 1] == "0") && (strNow[0] == "万") && (strNow[2] != "仟")) {
                        strBig = "亿" + strBig.substring(1, strBig.length);
                    }
                    else if ((strNow[0] == "万") && (strNow[2] == "仟")) {
                        strBig = strNum + strDW + "零" + strBig.substring(1, strBig.length);
                    }
                    else if ((strNow[0] == "万") && (strNow[2] != "仟")) {
                        strBig = strNum + strDW + strBig.substring(1, strBig.length);
                    }
                    else {
                        strBig = strNum + strDW + strBig;
                    }
                }
                else if ((i < 15) && (i > 11) && (strArr[intFen - 1] == "0") && (strNow[0] != "零") && (strNow[0] != "亿")) {
                    strBig = "零" + strBig;
                }
                else if ((i < 15) && (i > 11) && (strArr[intFen - 1] == "0") && (strNow[0] == "亿"))
                { }
                else if ((i < 15) && (i > 11) && (strArr[intFen - 1] == "0") && (strNow[0] == "零"))
                { }
                else if ((i < 15) && (i > 11) && (strArr[intFen - 1] != "0") && (strNow[0] == "零") && (strNow[1] == "亿") && (strNow[3] != "仟")) {
                    strBig = strNum + strDW + strBig.substring(1, strBig.length);
                }
                else if ((i < 15) && (i > 11) && (strArr[intFen - 1] != "0") && (strNow[0] == "零") && (strNow[1] == "亿") && (strNow[3] == "仟")) {
                    strBig = strNum + strDW + "亿零" + strBig.substring(2, strBig.length);
                } else {
                    strBig = strNum + strDW + strBig;
                }
                strFen = strFen.substring(0, intFen - 1);
                intFen = strFen.length;
                strArr = strFen.split("");
            }
            if (strBig == "整") { strBig = "零"; }
            return strBig;
        } catch (err) {
            return "";
        }
    }

  • 相关阅读:
    appium 元素定位方法
    Mac 使用MuMu模拟器调试
    渗透测试工具Drozer安装使用(Mac)
    渗透测试工具Drozer安装使用(Windows)
    python虚拟环境搭建
    HDU 6900 Residual Polynomial【分治 NTT】
    CF 1405E Fixed Point Removal【线段树上二分】
    Educational Codeforces Round 41
    Educational Codeforces Round 39
    Educational Codeforces Round 36
  • 原文地址:https://www.cnblogs.com/sagahu/p/2710029.html
Copyright © 2011-2022 走看看