elementui限制input只能输入正整数;限制小数点后两位

     <el-input v-model.trim="sup.moq" class="input-with-select" type="number"
               oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,4})?).*$/g, '$1')">

缺点:可以在整数输入完成后,光标定到数字中间,可以输入 .

进一度优化:

oninput="value=value.replace(/\D/g, '').replace(/^0{1,}/g, '')"

el-input限制输入小数点后两位,不限制正数或者负数

 <el-input type="number" v-model="value" @keyup.native="value=oninput(value)"></el-input>


// js方法
      // 限制金额只保留小数点后两位
      oninput(num) {
                    var str = JSON.parse(JSON.stringify(num));
          let int = ''; // 整数部分
          var point = ''; // 小数部分
          var len1 = str.substr(0, 1);
          var len2 = str.substr(1, 1);

          if (str.indexOf('.') > -1) {
              int = str.substring(0,str.indexOf('.')); // 取整数
              //如果第一位是-,第二位是. 用0补位 -0.xx
              if (len1 === '-' && len2 === '.') {
                  int = len1 + '0';
              }
              //如果第一位是. 第一位数字用0补位
              if (len1 === '.') {
                  int = '0';
              }
              point = str.substr(str.indexOf('.')+1,2); // 取小数点后两位
              str = int + '.' + point;
          } else {
              if(len1 === '0' && len2 === '0') {
                  // 第一位是0, 第二位也是0时,用。分隔 -> 0.0
                  str = len1 + '.' + len2;
              } else if (len1 === '0' && Number(len2) > 0) {
                  // 第一位是0, 第二位大于0,用。分隔 -> 0.x
                  str = len1 + '.' +len2;
              } else {
                  str = num;
              }
          }
          return str;
      },

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值