小程序input textarea 禁止粘贴实现

小程序中没有关于input禁止粘贴的功能,通过监听bindinput来实现禁止粘贴功能

使用场景  一般都是  在type=number  或者  其他  不想让用户 通过复制的效果  来输入错误的数据  

思路:

1、bindinput   监听每次输入事件,通过对比当前输入内容长度和上次输入内容长度做判断  如果 |当前内容长度 - 上次内容长度|  != 1 ,则表示用户不是手动输入的,这时候清空输入框即可

2、|当前内容长度 - 上次内容长度|  == 1 ,但是用户通过复制输入了 不符合预期的内容 ,这时候用过正则来判断内容是否合法

3、小程序bindinput 事件中 return是输入框的内容

核心代码(例子是判断手机号)

 //判断当前长度和上次长度对比
    if (Math.abs(e.detail.value.length - phoneAgain.length) != 1) {
      this.setData({
        phoneAgain: ''
      })
      return ''
    } else {
      //正则判断内容是否合法
      let reg = /^[0-9]*$/
      if (!reg.test(e.detail.value)) {
        this.setData({
          phoneAgain: ''
        })
        return ''
      }
    }

 

你可能感兴趣的:(前端学习,小程序,前端,小程序)