js轉換數字和人民幣

從網上扣下來的

cardNoShow:function(cardNo,split){
        var tmpCardNo=" ";
        if(!split){split=" ";}
        if(!cardNo || !cardNo.length){
            return cardNo;
        }
        var times=0;
        while(cardNo.length>4 && times<4){
            tmpCardNo=tmpCardNo+cardNo.substring(0,4)+split;
            cardNo=cardNo.substring(4);
            times++;
        }
        tmpCardNo=tmpCardNo+cardNo;
        return tmpCardNo;
    },
    /**
     * 將小寫金額轉換爲大寫金額
     * @param amt 小寫金額
     */
    bigcashShow:(function(amt){
        if(amt == ""){
            return "";
        }
        var aNum = ["%u96F6","%u58F9","%u8d30","%u53c1","%u8086","%u4F0D","%u9646","%u67D2","%u634C","%u7396"];
        var HUNDREDMILLION = 0;
        var TENTHOUSAND = 1;
        var THOUSAND = 2;
        var HUNDRED = 3;
        var TEN = 4;
        var YUAN = 5;
        var JIAO = 6;
        var CENT = 7;
        var ZHENG = 8;
        var aUnit = new Array(9);
        aUnit[HUNDREDMILLION] = "%u4EBF";   //億
        aUnit[TENTHOUSAND] = "%u4E07";      //萬
        aUnit[THOUSAND] = "%u4EDF";         //仟
        aUnit[HUNDRED] = "%u4F70";          //佰
        aUnit[TEN] = "%u62FE";              //拾
        aUnit[YUAN] = "%u5143";             //元
        aUnit[JIAO] = "%u89D2";             //角
        aUnit[CENT] = "%u5206";             //分
        aUnit[ZHENG] = "%u6574";            //整

        function filterCharacter( filterString, filterChar ){
            if( filterString == null || filterString.length == 0 ){
                return null;
            }
            var i = 0;  
            for( ; i < filterString.length; i++ ){
                if( filterString.charAt( i ) != filterChar )
                    break;
            }
            var ret = filterString.substring( i, filterString.length );
            ret = (ret.length > 0) ? ret : null;
            return ret; 
        }
        function convertIntegerToChineseCash( cash ){
            var tempCash = "";
            var returnCash = "";
            if( cash == null || cash.length == 0 )
                return null;
            var totalLen = cash.length;
            var times = ((cash.length % 4) > 0) ? ( Math.floor(cash.length/4) + 1 ) : Math.floor(cash.length/4);    
            var remainder = cash.length % 4;
            var i = 0;  
            for( ; i < times; i++ ){
                if( i == 0 && (remainder > 0) ) {
                    tempCash = cash.substring( 0, remainder );
                }else {
                    if( remainder > 0 )
                        tempCash = cash.substring( remainder+(i-1)*4, remainder+i*4 );
                    else
                        tempCash = cash.substring( i*4, i*4+4 );
                }
                tempCash = convert4ToChinese( tempCash, false );
                returnCash += tempCash;
                if( tempCash != null && tempCash.length != 0 ) 
                    returnCash += getUnit( times - i );
            }
            return returnCash;
        }
        function convertDecimalToChineseCash( cash, bOmitBeginZero ){
            var i = 0;
            var bBeginZero = false;
            var bMetZero = false;
            var returnCash = "";
            if( cash == null || cash.length == 0 )
                return returnCash;
            for( ; i < cash.length; i++ ){
                if( i >= 2 )
                    break;
                if( i == 0 && bOmitBeginZero && cash.charAt(i) == '0' ){
                    bBeginZero = true;
                    continue;
                }
                if( bBeginZero && cash.charAt(i) == '0' )
                    continue;
                if( cash.charAt(i) != '0' ) {
                    if( bMetZero )
                        returnCash += aNum[0]; //"零"
                    bMetZero = false;
                    returnCash += convert( cash.charAt(i) );
                    switch( i )
                    {
                    case 0:
                        returnCash += aUnit[JIAO]; //"角"
                        break;
                    case 1:
                        returnCash += aUnit[CENT]; //"分"
                        break;
                    default:
                        break;              
                    }
                }else {
                    bMetZero = true;
                }
            }
            return returnCash;  
        }
        function convert4ToChinese( cash, bOmitBeginZero ){
            var i = 0;
            var length = cash.length;
            var bBeginZero = false;
            var bMetZero = false;
            var returnCash = "";    

            for( ; i < length; i++ )
            {
                if( i == 0 && bOmitBeginZero && cash.charAt(i) == '0' )
                {
                    bBeginZero = true;
                    continue;
                }
                if( bBeginZero && cash.charAt(i) == '0' )
                    continue;

                if( cash.charAt(i) != '0' ) {
                    if( bMetZero )
                        returnCash += aNum[0]; //"零"
                    bMetZero = false;
                    returnCash += convert( cash.charAt(i) );
                    switch( i + (4-length) )
                    {
                    case 0:
                        returnCash += aUnit[THOUSAND]; //"千"
                        break;
                    case 1:
                        returnCash += aUnit[HUNDRED]; //"佰"
                        break;
                    case 2:
                        returnCash += aUnit[TEN]; //"拾"
                        break;
                    case 3:
                        returnCash += "";
                        break;
                    default:
                        break;              
                    }
                }else {
                    bMetZero = true;
                }
            }
            return returnCash;
        }
        function getUnit( part ){
            var returnUnit = "";
            var i = 0;

            switch( part )
            {
            case 1:
                returnUnit = "";
                break;
            case 2:
                returnUnit = aUnit[TENTHOUSAND]; // "萬"
                break;
            case 3:
                returnUnit = aUnit[HUNDREDMILLION]; //"億"
                break;
            default:
                if( part > 3 ){
                    for( ; i < part - 3; i++ ){
                        returnUnit += aUnit[TENTHOUSAND]; // "萬"
                    }
                    returnUnit += aUnit[HUNDREDMILLION]; //"億"
                }

                break;
            }
            return returnUnit;
        }
        function convert( num ){
            return aNum[parseInt(num)];
        }
        return function(cash){
            var integerCash="";
            var decimalCash=""; 
            var integerCNCash = "";
            var decimalCNCash = "";
            var dotIndex = 0;
            var cnCash = "";
            var Cash = "";
            Cash = $.trim( cash );
            if( Cash == null || Cash.length == 0 ){
                return cnCash;
            }

            if( !Util.isMoney( Cash ) ){
                return cnCash;  
            }
            dotIndex = Cash.indexOf('.');
            if( dotIndex != -1 ) {
                integerCash = Cash.substring( 0, dotIndex );
                decimalCash = Cash.substring( dotIndex + 1 );   
            }else {
                integerCash = Cash;
                decimalCash = null;
            }
            integerCNCash = filterCharacter( integerCash, '0' );
            if( integerCNCash == null ){
                integerCNCash = "";
            }else{
                integerCNCash = convertIntegerToChineseCash( integerCNCash );
            }
                decimalCNCash = convertDecimalToChineseCash( decimalCash, false );

            if( decimalCNCash == null || decimalCNCash.length == 0 ){
                if( integerCNCash == null || integerCNCash.length == 0 ){
                    cnCash = aNum[0] + aUnit[YUAN] + aUnit[ZHENG]; //"零元整"
                }else{
                    cnCash = integerCNCash + aUnit[YUAN] + aUnit[ZHENG]; //"元整"
                }
            }else {
                if( integerCNCash == null || integerCNCash.length == 0 ){
                    cnCash = decimalCNCash;
                }else{
                    cnCash = integerCNCash + aUnit[YUAN] + decimalCNCash;  //"元"
                }
            }
            var retCash = unescape(cnCash);

            if(cash<0.1 && cash!='0' &&cash!='0.'&&cash!='0.0'&&cash!='0.00'){
                    retCash = retCash.substring(1);
            }

            return retCash; 
        };
    })(),
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章