输入框不满足正则不让输入

需求:
1、输入值保留两位小数
2、最大输入8位数并且保留两位小数
3、不允许输入非数字字符



limitNumber() {
  value = value.replace(/[^\d.]/g, '');  // 清除"数字"和"."以外的字符 只能输入数字和小数点
  
  value= value.replace(/\.{2,}/g, '.');   // 不能连续输入两个及以上小数点

  value = value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.');  // 只保留第一个".", 清除多余的"."

  value = value.replace(/^(-)*(\d+)\.(\d\d).*$/, '$1$2.$3');  /// 只能输入位小数
  
  // 如果在第八位没有点就自动加上 '.00'
  if (value.split('')[8] !== '.' && value.length > 8) {
    value = value.substring(0, 8) + '.00';
  }
},

inputBlur() {
    //  如果输入有值并且没有小数点且长度小于8自动补 '.00'
  if (value.indexOf('.') == -1 && value.length <= 8 && value != '') {
    value =value + '.00';
  }
  value = Number(value).toFixed(2);
},

你可能感兴趣的:(输入框不满足正则不让输入)