其他分享
首页 > 其他分享> > vue 限制小数点位数以及只能输入数字

vue 限制小数点位数以及只能输入数字

作者:互联网

formatDecimal(str, num) {
      //str当前输入值,num是想要保留的小数位数
      str = String(str);
      if (!str.trim()) {
        return str;
      }
      var len1 = str.substr(0, 1);
      var len2 = str.substr(1, 1);
      // 如果第一位是0,第二位不是点,就用数字把点替换掉
      if (str.length > 1 && len1 === 0 && len2 !== ".") {
        str = str.substr(1, 1);
      }
      // 第一位不能是.
      if (len1 === ".") {
        str = "";
      }
      // 限制只能输入一个小数点
      if (str.indexOf(".") !== -1) {
        var str_ = str.substr(str.indexOf(".") + 1);
        if (str_.indexOf(".") !== -1) {
          str = str.substr(0, str.indexOf(".") + str_.indexOf(".") + 1);
        }
      }
      // 正则替换
      str = str.replace(/[^\d^.]+/g, ""); // 保留数字和小数点
      if (num || num === 0) {
        var rest = str.split(".")[1];
        if (rest && rest.length > num) {
          rest = rest.substr(0, num);
          str = str.split(".")[0] + "." + rest;
        }
      }
      return str;
    },

原文在https://blog.csdn.net/weixin_46190955/article/details/121848167

标签:vue,indexOf,小数点,rest,substr,num,位数,str,var
来源: https://www.cnblogs.com/ximenchuifa/p/16541208.html