js实现金额数字输入规范限制(支持负数的输入,精确到小数点后两位【限制范围为:-99999999.99~99999999.99】)

  // 输入事件
  keyinput() {
    let t = this.adjustForm.adjustCash.charAt(0);
    if(t != '-' && this.adjustForm.types === 1){    // 如果类型里显示为余额,输入的值变为正数时做类型清空,其他情况不做清空
      this.adjustForm.types = '';
    }
    this.adjustForm.adjustCash = this.adjustForm.adjustCash.replace(/[^\d\.]/g,""); 
    if(String(t) =='-' && this.adjustForm.adjustCash.charAt(0)!='-'){
      this.adjustForm.adjustCash = '-'+this.adjustForm.adjustCash;
    } 

    let index = this.adjustForm.adjustCash.indexOf('.');
    if(index != -1){
      this.adjustForm.adjustCash = this.adjustForm.adjustCash.substring(0,index+3);
    }
  },
  // 失焦事件
  keyblur() {
    let num = this.adjustForm.adjustCash;
    if(num === '')  return;
    let v = parseInt(this.adjustForm.adjustCash)+'';
    if(String(num).indexOf('-') == 0 || String(num).indexOf('+') == 0){
      v=v.replace(/^[\-\+]+/,'');
    }
    if(!/^[+-]?\d*\.?\d{1,3}$/.test(num)) {
        this.adjustForm.adjustCash = ''
        this.$message({
            message: '请输入正确的数字',
            duration: 3000,
            type: 'warning'
        });
    }else if(v.length > 8) {
        this.adjustForm.adjustCash = ''
        this.$message({
            message: '整数部分不能超过8位',
            duration: 3000,
            type: 'warning'
        });
    }else {
      this.adjustForm.adjustCash = (+num).toFixed(2)
    }
    if(!/^[+-]?\d*\.?\d{1,3}$/.test(num)){
      this.adjustForm.adjustCash = '';
      this.$message({
        message: '请输入正确的数字',
        duration: 3000,
        type: 'warning'
      });
    }
  }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值