el-input 控制输入内容只能输金额

  formatValue(value,row,item){
      let val = (value && value.split("")) || [];
      let sNum = val.toString(); //先转换成字符串类型
      if (sNum.indexOf('.') === 0) {//第一位就是 .
        sNum = '0' + sNum
      }
      sNum = sNum.replace(/[^\d.]/g,"");  //清除“数字”和“.”以外的字符
      sNum = sNum.replace(/\.{2,}/g,"."); //只保留第一个. 清除多余的
      sNum = sNum.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
      sNum = sNum.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数
      //以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
      if(sNum.indexOf(".")< 0 && sNum !==""){
        sNum = parseFloat(sNum);
      }
      this.$set(row,item,sNum)
    },
调用部分 在element表格中
 <el-table-column prop="hhaa14004" width="110px" sortable label="" :show-overflow-tooltip="true" align="left">
            <template scope="scope">
              <el-input v-model="scope.row.hhaa14004"  @input="e=>formatValue(e,scope.row,'hhaa14004')"  controls-position="right" style="width: 100%"></el-input>
            </template>
            <template slot="header" slot-scope="scope">
           <span style="color:red;">发票单价</span>
          </template>
          </el-table-column>

 

posted @ 2023-05-12 16:15  青幽草  阅读(1264)  评论(0编辑  收藏  举报