限制输入框只能输入数字和小数点,并且小数点后只能输入两位小数

方法:(Vue项目中的写法)

checkPrice (val) {
      let checkPlan = '' + val
      checkPlan = checkPlan
        .replace(/[^\d.]/g, '') // 清除“数字”和“.”以外的字符
        .replace(/\.{2,}/g, '.') // 只保留第一个. 清除多余的
        .replace(/^\./g, '') // 保证第一个为数字而不是.
        .replace('.', '$#$')
        .replace(/\./g, '')
        .replace('$#$', '.')
      if (checkPlan.indexOf('.') < 0 && checkPlan !== '') {
        // 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
        checkPlan = parseFloat(checkPlan) + ''
      } else if (checkPlan.indexOf('.') >= 0) {
        checkPlan = checkPlan
          .replace(/^()*(\d+)\.(\d\d).*$/, '$1$2.$3') // 只能输入两个小数
      }
      return checkPlan
    },

使用:

<el-input v-model="money" :change="money = checkPrice(money)">
posted @ 2021-11-03 17:24  小那  阅读(334)  评论(0编辑  收藏  举报