vue 数字金额转大写方法
生活随笔
收集整理的這篇文章主要介紹了
vue 数字金额转大写方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
**實現邏輯**億 仟 佰 拾 萬 仟 佰 拾 元 角 分1 2 3 4 5 6 7 8 1 2 31 2 3 4 5 0 0 0 1 2 31 2 3 4 5 0 0 0 1 0 31 2 3 4 5 0 0 0 1 1 01 2 3 4 5 0 0 0 0 0 01、格式化入參轉為字符串、去掉千分符不足兩位小數補零2、計算小數、整數長度所有的數值對應的漢字,進制對應單位3、數字轉大寫,添加進制4、整數部分處理5、小數部分處理
<template><div><div><span>請輸入金額:</span><el-input placeholder="請輸入內容" class="input-with-select" style="width:300px" v-model="amount"><el-button slot="append" icon="el-icon-circle-check" title="金額大寫轉換" @click="gotoCapAmountFn"></el-button></el-input></div><div>{{capAmount|capAmountToString}}</div></div></template>
<script>
export default {data() {return{amount:"",capAmount:"",}},filters: {capAmountToString: function (values) {if(values === null || values === ''){return "";}values = values.toString();let reg = new RegExp(",");values = values.replace(reg, "");// 不足兩位小數補零let capArr = values.split(".");if (capArr.length < 2) {capArr[1] = "00";} else if (capArr[1].length == 1) {capArr[1] = capArr[1][0] + "0";}let len = capArr[0].length; //整數長度let len2 = capArr[1].length; //小數長度let arr = [],arr2 = [];let chin_list = ["零","壹","貳","叁","肆","伍","陸","柒","捌","玖",]; //所有的數值對應的漢字let chin_lisp = ["仟","佰","拾","兆","仟","佰","拾","億","仟","佰","拾","萬","仟","佰","拾",]; //進制let chin_lisp2 = ["角", "分"]; //進制// 數字轉大寫,添加進制for (let i = 0; i < len; i++) {arr.push(parseInt(capArr[0][i])); //輸入的數據按下標存進去 存進去的只是數字arr[i] = chin_list[arr[i]]; //是根據我們輸入的輸入的數字,對應著我們的chin_list這個數組} for (let i = len - 1, j = 1; i > 0; i--) {//i =2 1 //倒序 為了添加進制,方便我們去觀看arr.splice(i, 0, chin_lisp[chin_lisp.length - j++]); //j=2}for (let n = 0; n < len2; n++) {arr2.push(parseInt(capArr[1][n])); //輸入的數據按下標存進去 存進去的只是數字arr2[n] = chin_list[arr2[n]]; //是根據我們輸入的輸入的數字,對應著我們的chin_list這個數組}for (let i = len2, j = 1; i > 0; i--) {//i =2 1 //倒序 為了添加進制,方便我們去觀看arr2.splice(i, 0, chin_lisp2[chin_lisp2.length - j++]); //j=2}arr = arr.join("");// 整數位處理if (len >= 1) {arr += "元";}//1234510001=>壹拾貳億叁仟肆佰伍拾壹萬零壹元arr = arr.replace(/零[仟佰拾]/g, "零");//100051231 =>壹億零零零伍萬壹仟貳佰叁拾壹arr = arr.replace(/零{2,}/g, "零");//壹億零零零伍萬壹仟貳佰叁拾壹 =>壹億零伍萬壹仟貳佰叁拾壹arr = arr.replace(/零([兆|億|萬|元])/g, "$1")//12300000壹仟貳佰叁拾零萬零元 =>壹仟貳佰叁拾萬元 arr = arr.replace(/億零{0,3}萬/, "億")//10000000123 =>壹佰億萬零壹佰貳拾叁元 arr = arr.replace(/兆零{0,3}億/, "兆")//10000000000123 壹拾零兆億零壹佰貳拾叁元 =>arr = arr.replace(/^元/, "零元"); //0 ->零元// 小數位處理arr2 = arr2.join("");arr = arr + arr2;arr = arr.replace(/零角/, "零"); //11.01 壹拾壹元零角壹分 =>壹拾壹元零壹分arr = arr.replace(/零{1,2}分/, "整"); //return arr;},},methods: {gotoCapAmountFn(){this.capAmount = this.amount;} }
}</script>
總結
以上是生活随笔為你收集整理的vue 数字金额转大写方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 渗透测试
- 下一篇: 卡巴斯基离线病毒库升级办法