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
}
// ⼩数部分
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
},
这个就是⼤写的代码了,复制了直接调⽤就可以了
<template v-slot:capitalize="scope">
<el-input :value="ruleForm.purchaseTaxUpper"/>
</template>
<template v-slot:capitalize1="scope">
<el-input v-model="ruleForm.purchaseTaxLower" placeholder="请输⼊价税合计" maxlength="16" @input="capiBtn" @blur="taxLower"/>
</template>
我⽤的是封装好的组件,所以⽤了插槽,有点懒,不想替换了,你们就把插槽替换成el-form-item就好
@input是输⼊时的事件,@blur是光标离开表单的事件
const numberTo=(rule, value, callback)=>{
const regExp1 =/^\d+(.\d+)?$/// 数字和⼩数点的正则
if(!place(/,/g,''))){// 替换掉千分符
return callback(new Error('请输⼊正确的数字'))
}
callback()// 如果不加这个会导致所有的校验跳过
}
这个校验是只校验数字和⼩数点,千分符被我替换掉了,但是如果只加这个校验,输⼊千分符的时候,千分符会被替换,多个千分符校验依然通过
capiBtn(){
this.ruleForm.purchaseTaxUpper =vertToChinaNum(this.ruleForm.purchaseTaxLower)
},
当触发input事件的时候,调⽤⼤写函数
taxLower(){
st +''===this.ruleForm.purchaseTaxLower){// 判断⿏标离开时的数据和移⼊是否有变化,没有变化的话就退出,不再继续向下执⾏,不然会变成NaN哦
return
}
this.ruleForm.purchaseTaxLower =this.place(/,/g,'')// 把千分符替换掉,这样⼤写的数据也会⼀样展⽰出来了,不会判断成异常数据
if(isNaN(this.ruleForm.purchaseTaxLower)){// 判断⼩写的数据格式是否正确
this.ruleForm.purchaseTaxUpper =''// 不正确⼤写的数据就为空
return
}
st =(Number(this.ruleForm.purchaseTaxLower).toFixed(2)+'').replace(/(\d{1,3})(?=(\d{3})+(?:$|\.)
)/g,'$1,')// 千分符+⼩数+去零
this.ruleForm.purchaseTaxLower =st
},
这⾥写的什么就将就看吧,因为是垃圾崽的代码,你们可以优化就优化
data(){
js 正则替换const numberTo=(rule, value, callback)=>{
const regExp1 =/^\d+(.\d+)?$/// 数字和⼩数点的正则
if(!place(/,/g,''))){// 替换掉千分符
return callback(new Error('请输⼊正确的数字'))
}
callback()// 如果不加这个会导致所有的校验跳过
}
return{
ruleForm:{
purchaseTaxUpper:''// ⼤写
purchaseTaxLower:''// ⼩写
},
test:0
}
}
我⾃测是没有问题的,当然不排除我没发现其他的问题,我⾮常菜,所以有啥不对轻喷
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论