vue自定义指令 input框限制金额输入
限制只能输入数字,保留后两位,且不能输入多个"."
Vue.directive('limitAmountInput', {
inserted(el) {
el.addEventListener('input', (e) => {
let value = e.target.value;
value = value.replace(/[^\d.]/g,'')
.replace(/\.{2,}/g, '.')
.replace('.', '$#$')
.replace(/\./g, '')
.replace('$#$', '.')
.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')
e.target.value = value;
e.target.dispatchEvent(new Event('input')); // 更新v-model绑定的值
})
}
})
全局设置:
新建一个directive.js文件,记得import Vue from ‘vue’;
最后在main.js中直接引入 directive.js ,就可以全局使用