在某些场景中,要对文本输入进行过滤显示,
例如:不能是文字,不能是特殊符号,不能是0开头,不能持续000等等问题。哈哈,看起来是不是很简单的样子,但是我用了近两天的时间才解决。。。。。害,还是记录下吧,
1
| <input type="number" v-model="sum" @input="click" />
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| 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' }) }, } }
|