uni-app 文本输入只能输入正整数

2020-08-10  本文已影响0人  w晚风

在某些场景中,要对文本输入进行过滤显示,
例如:不能是文字,不能是特殊符号,不能是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'
                })
            },
        }
    }
 
上一篇下一篇

猜你喜欢

热点阅读