vue输入金额,仅输入数字并且保留两位小数

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)

}

}

}})

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容