vue金额输入框

393 阅读1分钟
verification() {  
    this.MoneyVal = this.MoneyVal.replace(/[^\d.]/g,'')  
    // 输入两位数的时候判断第一位是0就只取第二位如01变1  
    if(this.MoneyVal.length == 1 && this.MoneyVal == 0) {  
        this.MoneyVal='1'  
    }  
    if(this.MoneyVal.length == 2 && this.MoneyVal.substr(0, 1) == 0 && this.MoneyVal.substr(1, 1)!='.') {  
        this.MoneyVal = this.MoneyVal.substr(1, 1)  
    }  
    let index = this.MoneyVal.indexOf('.')  
    if(index==-1) {  
        // 如果小数点不存在允许输入6位  
        if(this.MoneyVal.length>6) {  
            this.MoneyVal = this.MoneyVal.substr(0, 6)  
        }  
    }else { // 如果小数点存在允许输入9位,且小数点后输入两位禁止  
        if(this.MoneyVal.length>9 || this.MoneyVal.length>index+3){  
            this.MoneyVal = this.MoneyVal.substr(0, this.MoneyVal.length-1)  
        }  
    }  
    // 判断当前输入为小数点  
    if(this.MoneyVal.substr(this.MoneyVal.length-1, this.MoneyVal.length) == '.') {  
        // 判断之前就存在小数点,就删除最后一位,保持只有一个小数点  
        if(this.MoneyVal.substr(0, this.MoneyVal.length-1).indexOf('.') !=-1) {  
            this.MoneyVal = this.MoneyVal.substr(0, this.MoneyVal.length-1)  
        }  
        // 如果第一位是小数点就替换成0.  
        if(this.MoneyVal.length == 1) {  
            this.MoneyVal = '1'  
        }  
    }  
},