给金额框增加千位符,并判断是否含数字以外的值如果有则清空, 同时限制只能输入两位小数, 如果输入的是整数 会默认加上" .00 " (二)

    // 我的方法用于vue
    changeNum(value) {      
        // 预防页面复用(比方说新增/编辑的时候用一套页面)先将value的分隔号清除掉, 如果value值不是字符串必须先转字符串
        value = value.replace(/,/gi, ""); 
        // 先判断输入框输入的是否是符合规格的数字(包括特殊符号,大小写字母,空格等),不符合则清空输入框
        var reg = /^\d+(\.\d+)?$/;
        if (reg.test(value) == true) {
            //将输入的值进行四舍五入转换成整数
            value = Math.round(value * 100) / 100;
            // 把输入的value值四舍五入保留两位小数
            value = value.toFixed(2);
            let num1,num2;
            if (value.indexOf(".") > -1) {
                // 把字符串分割成数组然后并对数组第一项,第二项分别赋值
                num1 = value.split('.')[0];
                num2 = "." + value.split('.')[1];
            }else {
                num1 = value;
                num2 = ".00";
            }
            //上面的保留两位小数的过程  下面是给输入的值增加千位符
            let re = /\d{1,3}(?=(\d{3})+$)/g;        
            //如果超过三位数增加千位符
            let n1 = num1.replace(/^(\d+)((\.\d+)?)$/, function(s, s1, s2) {
                return s1.replace(re, "$&,") + s2;
            });        
            //这是我v-model的值
            this.project[num] = num1 + num2;
        } else {
            //不符合规格则清空输入框(这是我v-model的值)
            this.project[num] = "";
        }
    }

 

posted on 2019-08-01 14:36  ㅤㅤㅤㅤㅤㅤ  阅读(244)  评论(0编辑  收藏  举报

导航