Iview實(shí)現(xiàn)金額轉(zhuǎn)中文大寫效果

控件代碼

<template>
    <Poptip trigger="focus" :content="getWord"  >
        <slot name="inputBox" @input="change"></slot>
    </Poptip>
</template>
<script>

    export default{
        props: ['text'],
        components: {},
        data: function () {
            return {
                word: ''
            }
        },
        computed: {
            getWord(){
                return this.convertCurrency(this.text);
            }
        },
        created: function () {

        },
        methods: {
            change(e){
                this.word = this.convertCurrency(e);
            },
            convertCurrency(money) {
                //漢字的數(shù)字
                var cnNums = new Array('零', '壹', '貳', '叁', '肆', '伍', '陸', '柒', '捌', '玖');
                //基本單位
                var cnIntRadice = new Array('', '拾', '佰', '仟');
                //對應(yīng)整數(shù)部分?jǐn)U展單位
                var cnIntUnits = new Array('', '萬', '億', '兆');
                //對應(yīng)小數(shù)部分單位
                var cnDecUnits = new Array('角', '分', '毫', '厘');
                //整數(shù)金額時后面跟的字符
                var cnInteger = '整';
                //整型完以后的單位
                var cnIntLast = '元';
                //最大處理的數(shù)字
                var maxNum = 999999999999999.9999;
                //金額整數(shù)部分
                var integerNum;
                //金額小數(shù)部分
                var decimalNum;
                //輸出的中文金額字符串
                var chineseStr = '';
                //分離金額后用的數(shù)組眶蕉,預(yù)定義
                var parts;
                if (money === '') { return ''; }
                money = parseFloat(money);
                if (money >= maxNum) {
                    //超出最大處理數(shù)字
                    return '';
                }
                if (money == 0) {
                    chineseStr = cnNums[0] + cnIntLast + cnInteger;
                    return chineseStr;
                }
                //轉(zhuǎn)換為字符串
                money = money.toString();
                if (money.indexOf('.') == -1) {
                    integerNum = money;
                    decimalNum = '';
                } else {
                    parts = money.split('.');
                    integerNum = parts[0];
                    decimalNum = parts[1].substr(0, 4);
                }
                //獲取整型部分轉(zhuǎn)換
                if (parseInt(integerNum, 10) > 0) {
                    var zeroCount = 0;
                    var IntLen = integerNum.length;
                    for (var i = 0; i < IntLen; i++) {
                        var n = integerNum.substr(i, 1);
                        var p = IntLen - i - 1;
                        var q = p / 4;
                        var m = p % 4;
                        if (n == '0') {
                            zeroCount++;
                        } else {
                            if (zeroCount > 0) {
                                chineseStr += cnNums[0];
                            }
                            //歸零
                            zeroCount = 0;
                            chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
                        }
                        if (m == 0 && zeroCount < 4) {
                            chineseStr += cnIntUnits[q];
                        }
                    }
                    chineseStr += cnIntLast;
                }
                //小數(shù)部分
                if (decimalNum != '') {
                    var decLen = decimalNum.length;
                    for (var i = 0; i < decLen; i++) {
                        var n = decimalNum.substr(i, 1);
                        if (n != '0') {
                            chineseStr += cnNums[Number(n)] + cnDecUnits[i];
                        }
                    }
                }
                if (chineseStr == '') {
                    chineseStr += cnNums[0] + cnIntLast + cnInteger;
                } else if (decimalNum == '') {
                    chineseStr += cnInteger;
                }
                return chineseStr;
            },
        }
    }
</script>
<style>

</style>

調(diào)用:

<template>
    <div>
        <InputCnBox :text="money">
            <Input slot="inputBox" v-model.number="money"/>
        </InputCnBox>

    </div>
</template>
<script>
    import InputCnBox from '../components/InputCnBox.vue';
    export default {
        components: {InputCnBox},
        data: function () {
            return {
                money: 0,
            }
        },
        computed: {},
        created: function () {

        },
        mounted() {

        },
        updated() {

        },
        methods: {}
    }
</script>
<style>

</style>

效果圖:


inputbox.gif
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市句狼,隨后出現(xiàn)的幾起案子许起,更是在濱河造成了極大的恐慌十偶,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件园细,死亡現(xiàn)場離奇詭異惦积,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)猛频,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進(jìn)店門狮崩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鹿寻,你說我怎么就攤上這事睦柴。” “怎么了毡熏?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵坦敌,是天一觀的道長。 經(jīng)常有香客問我痢法,道長狱窘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任财搁,我火速辦了婚禮蘸炸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘妇拯。我一直安慰自己幻馁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布越锈。 她就那樣靜靜地躺著仗嗦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪甘凭。 梳的紋絲不亂的頭發(fā)上稀拐,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機(jī)與錄音丹弱,去河邊找鬼德撬。 笑死铲咨,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蜓洪。 我是一名探鬼主播纤勒,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼隆檀!你這毒婦竟也來了摇天?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤恐仑,失蹤者是張志新(化名)和其女友劉穎泉坐,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裳仆,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡腕让,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了歧斟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片纯丸。...
    茶點(diǎn)故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖构捡,靈堂內(nèi)的尸體忽然破棺而出液南,到底是詐尸還是另有隱情,我是刑警寧澤勾徽,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布滑凉,位于F島的核電站,受9級特大地震影響喘帚,放射性物質(zhì)發(fā)生泄漏畅姊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一吹由、第九天 我趴在偏房一處隱蔽的房頂上張望若未。 院中可真熱鬧,春花似錦倾鲫、人聲如沸粗合。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽隙疚。三九已至,卻和暖如春磕道,著一層夾襖步出監(jiān)牢的瞬間遣鼓,已是汗流浹背合呐。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工蹋盆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人舟茶。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子肛走,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,444評論 0 17
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,113評論 1 32
  • 【Android 動畫】 動畫分類補(bǔ)間動畫(Tween動畫)幀動畫(Frame 動畫)屬性動畫(Property ...
    Rtia閱讀 6,182評論 1 38
  • 一录别、簡歷準(zhǔn)備 1羹与、個人技能 (1)自定義控件、UI設(shè)計(jì)庶灿、常用動畫特效 自定義控件 ①為什么要自定義控件? Andr...
    lucas777閱讀 5,218評論 2 54
  • 我們在上一篇《通過代碼自定義不等高cell》中學(xué)習(xí)了tableView的相關(guān)知識吃衅,本文將在上文的基礎(chǔ)上往踢,利用sto...
    啊世ka閱讀 1,512評論 2 7