校验数字不能是纯文字,纯符号,连续数字

checkText(scope, item) {
      if (item.fieldname === 'strproducenum') {
        if (
          /^[\u4e00-\u9fa5]+$/g.test(scope.row[item.fieldname]) ||
          /\s/.test(scope.row[item.fieldname]) ||
          /^(?:[!@#$%^&()+=<>,.?/:";',。、?》《:“”‘’;!@#¥%……&()+=`~·]+)$/g.test(scope.row[item.fieldname])
        ) {
          this.$message.error('禁止输入空格,纯汉字以及纯符号!')
          scope.row[item.fieldname] = ''
          return false
        }
        const arr = '01234567890,111,222,333,444,555,666,777,888,999,000'
        if (
          arr.includes(scope.row[item.fieldname]) ||
          /([0-9])\1{1,}$/.test(scope.row[item.fieldname]) ||
          (scope.row[item.fieldname].length === 1 &&
            typeof Number(scope.row[item.fieldname]) === 'number')
        ) {
          this.$message.error('禁止输入单数字或连续数字!')
          scope.row[item.fieldname] = ''
          return false
        }
      }
checkQuantity(val, scope, item) {
      if (item.fieldname === 'dblquantity' || item.fieldname === 'dblprice') {
        if (!scope.row.lngitemid) {
          this.$message.error('请选择物品!')
          scope.row[item.fieldname] = ''
          return false
        }
        if (!/^[+-]?\d*(\.\d*)?(e[+-]?\d+)?$/.test(scope.row[item.fieldname])) {
          this.$message.error('必须为数字!')
          scope.row[item.fieldname] = ''
          scope.row.totalprice = ''
          return false
        }
        if (item.fieldname === 'dblquantity') {
          if (!/^(\d|[1-9]\d+)(\.\d+)?$/.test(scope.row[item.fieldname])) {
            this.$message.error('只能输入正数!')
            scope.row.dblquantity = ''
            scope.row.totalprice = ''
            return false
          }
          if (
            !/^(?!0+(?:\.0+)?$)(?:[1-9]\d*|0)(?:\.\d{1,2})?$/.test(
              scope.row.dblquantity * 1
            )
          ) {
            this.$message.error('输入最多12位整数2位小数!')
            scope.row.dblquantity = ''
            scope.row.totalprice = ''
            return false
          }
        } else if (item.fieldname === 'dblprice') {
          if (!/^(\d|[1-9]\d+)(\.\d+)?$/.test(scope.row[item.fieldname])) {
            this.$message.error('只能输入正数!')
            scope.row.dblprice = ''
            scope.row.totalprice = ''
            return false
          }
          if (
            !/^(0\.(?!0+$)\d{1,4}|^[1-9][0-9]{0,11}(\.\d{0,4})?)$/.test(
              scope.row.dblprice * 1
            )
          ) {
            this.$message.error('输入最多12位整数4位小数!')
            scope.row.dblprice = ''
            scope.row.totalprice = ''
            return false
          }
        }
}
rules: {
        stritem: [{ required: true, message: '必填字段', trigger: 'blur' }],
        dblquantity: [
          { required: true, message: '必填字段', trigger: 'blur' },
          {
            pattern: '^[1-9]\\d{0,11}(\\.\\d{1,2})?$|^0(\\.\\d{1,2})?$',
            message: '整数最多12位小数2位',
            trigger: 'blur',
            transform: (value) => String(value)
          }
        ],
        dblprice: [
          { required: true, message: '必填字段', trigger: 'blur' },
          {
            pattern: '^[1-9]\\d{0,11}(\\.\\d{1,4})?$|^0(\\.\\d{1,4})?$',
            message: '整数最多12位小数4位',
            trigger: 'blur',
            transform: (value) => String(value)
          }
        ]
      },
posted @ 2024-06-20 10:44  hello芳芳  阅读(16)  评论(0)    收藏  举报