1 限制输入正整数(elment-ui)
<el-input type="number" v-model="count" onInput="value=value.replace(/^(0+)|[^\d]+/g,'')" />
2 限制保留2为小数
<el-input type="number" @input="onKeyUp" v-model="count"/>
export default {
data() {
return {
count:''
}
},
methods: {
onKeyUp() {
this.count = this.count.replace(/[^\d.]/g, '') // 清除“数字”和“.”以外的字符
this.count = this.count.replace(/\.{2,}/g, '.') // 只保留第一个. 清除多余的
this.count = this.count.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
this.count = this.count.replace(/^(\-)*(\d+)\.(\d\d\d).*$/, '$1$2.$3')// 只能输入3个小数
if (this.count.indexOf('.') < 0 && this.count != '') { // 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
this.count = parseFloat(this.count)
}
}
}
}
3 优化
<el-input type="number" @input.native="onKeyUp" v-model="count"/>
export default {
data() {
return {
count:''
}
},
methods: {
onKeyUp(e) {
let val = e.target.value
val = val.replace(/[^\d.]/g, '') // 清除“数字”和“.”以外的字符
val = val.replace(/\.{2,}/g, '.') // 只保留第一个. 清除多余的
val = val.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
val = val.replace(/^(\-)*(\d+)\.(\d\d\d).*$/, '$1$2.$3')// 只能输入3个小数
if (val.indexOf('.') < 0 && val != '') { // 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
val = parseFloat(val)
}
e.target.value = val
this.count = val
}
}
}