input只能输入数字 ,保留两位小数

<el-form-item label="退款金额">
          <el-input
            v-model="price"
            @input="limitInput($event,'price')"
            placeholder="请输入退款金额"
          ></el-input>
        </el-form-item>
limitInput(value, name) {
      let val = (value && value.split("")) || [];
      let reg1 = /\d/;
      let reg2 = /\./;
      // 第一个字符不能为小数点
      if (val[0] == ".") {
        this.price = "";
        return;
      }
      // 过滤掉除数字和小数点外的字符
      val = val.filter((e) => reg1.test(e) || reg2.test(e));
      // 匹配小数点后只能有两位小数
      // 解释一下这个match正则规格
      // ^\d* 是指以数字开头,后面允许输入0到多位数字
      // (\.?) 是指只允许一个小数点
      // \d{0,2} 是指只允许0到2位小数
      this.price = val.join("").match(/^\d*(\.?\d{0,2})/g)[0] || null;
    },

版权声明:本文为qq_42977004原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。