vue输入金额,仅输入数字并且保留两位小数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue输入金额,仅输入数字并且保留两位小数相关的知识,希望对你有一定的参考价值。
参考技术A Vue.directive('Money',inserted: function (el)
const input = el.querySelector('.el-input__inner');
input.onkeyup=function(e)
input.value=input.value.replace(/[^\d\.]/g,'')
input.value=input.value.replace(/^\./g,'')
input.value=input.value.replace(/\.2,/g,'.')
input.value=input.value.replace(/\.2,/g,'.')
input.value=input.value.replace('.','$#$').replace(/\./g,'').replace('$#$','.')
input.value=input.value.replace('.','$#$').replace(/\./g,'').replace('$#$','.')
input.value=input.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')
if(input.value=='00')//输入 000000 时,转成0
input.value=0
input.onblur=function(e)
input.value=input.value.replace(/[^\d\.]/g,'')
input.value=input.value.replace(/^\./g,'')
input.value=input.value.replace(/\.2,/g,'.')
input.value=input.value.replace(/\.2,/g,'.')
input.value=input.value.replace('.','$#$').replace(/\./g,'').replace('$#$','.')
input.value=input.value.replace('.','$#$').replace(/\./g,'').replace('$#$','.')
input.value=input.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')
if(input.value=='0')//输入0的时候转成空 或者可自行调节 0.00 看需求
input.value=''
if(input.value.split('.')[1]=='')//把 123. 的数据转成123
input.value=input.value.split('.')[0]
if(input.value.substr(0,1)=="0"&&input.value.substr(1,1)!=".")//把 0123456 的数据转成123456
input.value=input.value.substr(1,input.value.length-1)
)
以上是关于vue输入金额,仅输入数字并且保留两位小数的主要内容,如果未能解决你的问题,请参考以下文章
vue element组件库<el-input>限制只能输入数字,且保留小数后两位
js正则表达式 只能支持小数点到两位小数和纯数字 0.01-99999999(大于0)