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)限制長(zhǎ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)計(jì)出長(zhǎng)度
let arr=[];
let chin_list=['零','壹','貳','叁','肆','伍','陸','柒','捌','玖']//所有的數(shù)值對(duì)應(yīng)的漢字
let chin_lisp=['仟','佰','拾','億','仟','佰','拾','萬','仟','佰','拾']//進(jìn)制
for(let i=0;i<len;i++){
arr.push(parseInt(values[i])); //輸入的數(shù)據(jù)按下標(biāo)存進(jìn)去 存進(jìn)去的只是數(shù)字
arr[i]=chin_list[arr[i]] //是根據(jù)我們輸入的輸入的數(shù)字,對(duì)應(yīng)著我們的chin_list這個(gè)數(shù)組
}//123['壹','佰','貳','拾','叁']
for(let i=len-1,j=1;i>0;i--){//i =2 1 //倒序 為了添加進(jìn)制,方便我們?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ù)字(金額)大小寫實(shí)時(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事件:實(shí)時(shí)操作事件
過程:通過@input事件傳入?yún)?shù)(123)到computeLen1方法中,通過一系列操作,最終拿到ref(壹佰貳拾叁元整),賦值到this.form.taxNotIncludedCapital
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
在Vue3中使?echarts?圖表寬度自適應(yīng)變化的操作方法
本文介紹了在Vue3中使用ECharts時(shí),如何使圖表容器寬度自適應(yīng)頁(yè)面大小,通過修改模板中的div樣式,將寬度設(shè)置為100%,并監(jiān)聽窗口大小變化事件,調(diào)用ECharts實(shí)例的resize方法,實(shí)現(xiàn)圖表的自適應(yīng)調(diào)整,感興趣的朋友跟隨小編一起看看吧2025-02-02
Vue SPA單頁(yè)面的應(yīng)用和對(duì)比
單頁(yè)面是指整個(gè)應(yīng)用程序只有一個(gè)唯一完整的 HTML 頁(yè)面,而其它所謂的頁(yè)面,其實(shí)都是組件片段而已,切換頁(yè)面也只是切換一個(gè) HTML 中顯示不同的組件片段。在今后所有的開發(fā)項(xiàng)目都是單頁(yè)面應(yīng)用2022-08-08
vue項(xiàng)目中按鈕防抖處理實(shí)現(xiàn)過程
這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目中按鈕防抖處理實(shí)現(xiàn)的相關(guān)資料,在項(xiàng)目開發(fā)中相必大家時(shí)常會(huì)遇到按鈕重復(fù)點(diǎn)擊后引起事件重復(fù)提交的問題,需要的朋友可以參考下2023-08-08
vue 組件的封裝之基于axios的ajax請(qǐng)求方法
今天小編就為大家分享一篇vue 組件的封裝之基于axios的ajax請(qǐng)求方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08
前端實(shí)現(xiàn)Vue組件頁(yè)面跳轉(zhuǎn)的多種方式小結(jié)
這篇文章主要為大家詳細(xì)介紹了前端實(shí)現(xiàn)Vue組件頁(yè)面跳轉(zhuǎn)的多種方式,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,有需要的小伙伴可以了解下2024-02-02
vite創(chuàng)建vue3項(xiàng)目頁(yè)面引用public下js文件失敗解決辦法
Vue3相較于之前的版本有了不少變化,如引用全局Js文件,這篇文章主要給大家介紹了關(guān)于vite創(chuàng)建vue3項(xiàng)目頁(yè)面引用public下js文件失敗的解決辦法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11
Vue.js實(shí)現(xiàn)輸入框清空功能的兩種方式
Vue.js 是一個(gè)流行的前端框架,它提供了多種方法來實(shí)現(xiàn)數(shù)據(jù)的雙向綁定和事件處理,在構(gòu)建表單時(shí),我們經(jīng)常需要實(shí)現(xiàn)清空輸入框的功能,本文將介紹兩種在Vue中實(shí)現(xiàn)輸入框清空功能的方法,感興趣的小伙伴跟著小編一起來看看吧2024-12-12

