在某些场景中,要对文本输入进行过滤显示,
例如:不能是文字,不能是特殊符号,不能是0开头,不能持续000等等问题。哈哈,看起来是不是很简单的样子,但是我用了近两天的时间才解决。。。。。害,还是记录下吧,
<input type="number" v-model="sum" @input="click" />
export default {
data() {
return {
sum: 0,
}
},
methods: {
click(e){
const v = e.detail.value
this.sum = '1'
const zero = /^(0{2,})|[^0-9]/g
let final = 0
if (!v) {
final = 0
} else {
final = v.toString().replace(zero, (v) => {
return 0
})
if (final.split('')[0] * 1 === 0) {
final = final.slice(1) - 0 || 0
}
}
this.$nextTick(() => {
this.sum = final.toString() || '0'
})
},
}
}
网友评论