vue將數(shù)字轉(zhuǎn)為中文大寫金額方式
將數(shù)字轉(zhuǎn)為中文大寫金額
記得引入vue.js文件
<html lang="en"> <head> <meta charset="UTF-8"> <title>用vue將數(shù)字轉(zhuǎn)為中文大寫金額</title> <script src='vue.js'></script> </head> <body> <div id="box"> <h1 v-if='flag'>我已經(jīng)限制長度了,放棄吧</h1> <h1 v-if='flag'><button @click='shutDown'>關(guān)閉</button></h1> <input type="text" v-model='inputVal'> <!--<button @click='to_ch'>轉(zhuǎn)換</button>--> {{inputVal | toChies}} <!--過濾器--> </div> </body> <script> var app = new Vue({ el:"#box", data:{ inputVal:'', flag:false, values:'' }, filters:{//局部過濾器 toChies:function(values){//形參 let len=values.length//統(tǒng)計出長度 let arr=[]; let chin_list=['零','壹','貳','叁','肆','伍','陸','柒','捌','玖']//所有的數(shù)值對應(yīng)的漢字 let chin_lisp=['仟','佰','拾','億','仟','佰','拾','萬','仟','佰','拾']//進制 for(let i=0;i<len;i++){ arr.push(parseInt(values[i])); //輸入的數(shù)據(jù)按下標存進去 存進去的只是數(shù)字 arr[i]=chin_list[arr[i]] //是根據(jù)我們輸入的輸入的數(shù)字,對應(yīng)著我們的chin_list這個數(shù)組 }//123['壹','佰','貳','拾','叁'] for(let i=len-1,j=1;i>0;i--){//i =2 1 //倒序 為了添加進制,方便我們?nèi)ビ^看 arr.splice(i,0,chin_lisp[chin_lisp.length-j++]) //j=2 } console.log(arr) arr=arr.join('') if(len>=1){ arr+='元整' } return arr } }, watch:{ inputVal(newVal,oldVal){ if(newVal.length==13){ this.inputVal=oldVal this.flag=true } } }, methods:{ shutDown(){ this.flag=false }, to_ch(){ console.log(this.inputVal) this.inputVal=this.values } } }) </script> </html>
數(shù)字(金額)大小寫實時轉(zhuǎn)換
<el-col :span="12"> <el-form-item :label="$t('不含稅金額')" prop="taxNotIncluded"> <el-input v-model="form.taxNotIncluded" :placeholder="$t('不含稅金額')" show-word-limit @input="computeLen1(form.taxNotIncluded)" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item :label="$t('不含稅金額(大寫)')" prop="taxNotIncludedCapital"> <el-input v-model="form.taxNotIncludedCapital" :placeholder="$t('不含稅金額(大寫)')" show-word-limit maxlength="32" /> </el-form-item> </el-col>
computeLen1(number) { let ret = '' if (number !== '' && number != null && number !== '0') { let unit = '仟佰拾億仟佰拾萬仟佰拾元角分' let str = '' number += '00' const point = number.indexOf('.') if (point >= 0) { number = number.substring(0, point) + number.substr(point + 1, 2) } unit = unit.substr(unit.length - number.length) for (let i = 0; i < number.length; i++) { str += '零壹貳叁肆伍陸柒捌玖'.charAt(number.charAt(i)) + unit.charAt(i) } ret = str .replace(/零(仟|佰|拾|角)/g, '零') .replace(/(零)+/g, '零') .replace(/零(萬|億|元)/g, '$1') .replace(/(億)萬|(拾)/g, '$1$2') .replace(/^元零?|零分/g, '') .replace(/元$/g, '元') + '整' } this.form.taxNotIncludedCapital = ret },
@input事件:實時操作事件
過程:通過@input事件傳入?yún)?shù)(123)到computeLen1方法中,通過一系列操作,最終拿到ref(壹佰貳拾叁元整),賦值到this.form.taxNotIncludedCapital
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue使用video.js實現(xiàn)播放m3u8格式的視頻
這篇文章主要為大家詳細介紹了vue如何使用video.js實現(xiàn)播放m3u8格式的視頻,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2023-12-12基于vue+element實現(xiàn)全局loading過程詳解
這篇文章主要介紹了基于vue+element實現(xiàn)全局loading過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07axios中post請求json和application/x-www-form-urlencoded詳解
Axios是專注于網(wǎng)絡(luò)數(shù)據(jù)請求的庫,相比于原生的XMLHttpRequest對象,axios簡單易用,下面這篇文章主要給大家介紹了關(guān)于axios中post請求json和application/x-www-form-urlencoded的相關(guān)資料,需要的朋友可以參考下2022-10-10基于vue-cli3多頁面開發(fā)apicloud應(yīng)用的教程詳解
這篇文章主要介紹了基于vue-cli3多頁面開發(fā)apicloud應(yīng)用,本文采用vue-cli+APIcloud的方式寫解決以上痛點,開發(fā)靈活,并且打包之后體積更小速度更快,需要的朋友可以參考下2019-06-06vuex 中輔助函數(shù)mapGetters的基本用法詳解
mapGetters輔助函數(shù)僅僅是將 store 中的 getter 映射到局部計算屬性,在組件或界面中不使用mapGetter調(diào)用映射vuex中的getter,在組件或界面中使用mapGetter調(diào)用映射vuex中的getter,具體內(nèi)容跟隨小編一起通過本文學習吧2021-07-07