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

2019/07/05 14:49
阅读数 31
  // 我的方法用于vue
    changeNum(value) {
     // 预防页面复用(比方说新增/编辑的时候用一套页面)先将value的分隔号清除掉, 如果value值不是字符串必须先转字符串
     value = value.replace(/,/gi, "");
// 先判断输入框输入的是否是符合规格的数字(包括特殊符号,大小写字母,空格等),不符合则清空输入框 var reg = /^\d+(\.\d+)?$/; if(reg.test(value) == true) { //将输入的值进行四舍五入转换成整数 let vals = Math.round(value * 100) / 100; //将输入的值转换为字符串 let valse = vals.toString(); //检索输入的值有没有输入小数位 比如 99.99 var valsex = valse.indexOf("."); //如果没有输入小数位则自动补充".00" if(valsex < 0) { valse += ".00"; } //如果只输入一位小数则进行补充后面的一位 比方说输入"99.8" 会转化成"99.80" while (valse.length <= valsex + 2) { valse += "0"; } //上面的保留两位小数的过程 下面是给输入的值增加千位符 let re = /\d{1,3}(?=(\d{3})+$)/g;
       //如果超过三位数增加千位符 let n1
= valse.replace(/^(\d+)((\.\d+)?)$/, function(s, s1, s2) { return s1.replace(re, "$&,") + s2; });
       //这是我v-model的值
this.project[num] = n1; }else { //不符合规格则清空输入框(这是我v-model的值) this.project[num] = ""; } }

 

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部