input输入框限制只能输入数字和一个小数点


项目要求输入框只能输入数字和一个小数点,长度最多16位,小数点保留两位小数

<input
  type="number"
  @keyup="proving(index)"
  v-model="item.value"
  placeholder="请输入"
/>
 
  proving(index){
      // this.list[index].value 是输入框输入的值,这里是列表循环出来的输入框
      // 先把非数字的都替换掉,除了数字和.
      this.list[index].value = this.list[index].value.replace(/[^\d.]/g, '');
      // 必须保证第一个为数字而不是.
      this.list[index].value = this.list[index].value.replace(/^\./g, '');
      // 保证只有出现一个.而没有多个.
      this.list[index].value = this.list[index].value.replace(/\.{2,}/g, '');
      // 保证.只出现一次,而不能出现两次以上
      this.list[index].value = this.list[index].value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.');
      let count = -1
      for (let i in this.list[index].value) {
          if (this.list[index].value[i] === '.') {
              count = i
          }
          if (count !== -1) {
              if (i - count > 2) {
                  this.list[index].value = this.list[index].value.substring(0, this.list[index].value.length - 1)
              }
          }
      }
      // 限制输入长度最多为16位
      if(this.list[index].value.length > 16){
        this.list[index].value = this.list[index].value.slice(0, 16)
      }
    }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM