el-input输入校验

发布时间 2023-04-17 10:56:33作者: shuihanxiao
 <el-input
              type="textarea"
              style="width: 100px !important;"
              :max="9999"
              :min="0"
              :precision="0"
              :step="1"
              :controls="false"
              v-model.number="detailsData.detail[scope.$index].remark"
              @input="tableInputUpdate(scope.$index)"
            ></el-input>

小数点位数

formatDecimal(str, num) {
      //str当前输入值,num是想要保留的小数位数
      str = String(str)
      if (!str.trim()) {
        return str
      }
      var len1 = str.substr(0, 1)
      var len2 = str.substr(1, 1)
      // 如果第一位是0,第二位不是点,就用数字把点替换掉
      if (str.length > 1 && len1 === 0 && len2 !== '.') {
        str = str.substr(1, 1)
      }
      // 第一位不能是.
      if (len1 === '.') {
        str = ''
      }
      // 限制只能输入一个小数点
      if (str.indexOf('.') !== -1) {
        var str_ = str.substr(str.indexOf('.') + 1)
        if (str_.indexOf('.') !== -1) {
          str = str.substr(0, str.indexOf('.') + str_.indexOf('.') + 1)
        }
      }
      // 正则替换
      str = str.replace(/[^\d^.]+/g, '') // 保留数字和小数点
      if (num || num === 0) {
        var rest = str.split('.')[1]
        if (rest && rest.length > num) {
          rest = rest.substr(0, num)
          str = str.split('.')[0] + '.' + rest
        }
      }
      return str
    },