uniapp 输入框输入金额,限制金额数字格式

950 阅读1分钟

uniapp 输入框,输入金额数字,限制金额的格式(小数字后两位、第一位不能是小数点、不能输入两个及以上的小数点)

// 检查输入金额数字格式  
      checkNum(e) {  
        this.$nextTick(() => {  
          let val = e.toString();  
          let dot = val.indexOf('.'); //包含小数点  
          if (dot == 0) {  
            // 首位小数点情况  
            val = val.replace(/[^$#$]/g"0.");  
            // 这个正则表达式 /\.{2,}/g 匹配两个或更多连续的点。  
            val = val.replace(/\.{2,}/g".");  
          } else {  
            val = val.replace(/[^\d.]/g""); //清除"数字"和"."以外的字符  
            val = val.replace(/\.{2,}/g"."); //只保留第一个. 清除多余的  
            val = val.replace(/^0+\./g'0.');  
            val = val.match(/^0+[1-9]+/) ? val = val.replace(/^0+/g'') : val  
            val = (val.match(/^\d*(\.?\d{0,2})/g)[0]) || ''  
          }  
  
          if (val.includes(".")) {  
            let point = val.toString().split(".")[1].length;  
            if (point === 2) {  
              this.maxlength = val.length;   // 限制输入框可输入的长度范围只在小数点后两位
            }  
          } else {  
            this.maxlength = 15;  // 如果没有小数点,则输入框可输入长度是最原始长度
          }  
          this.form.price = val;  // 如果有改变 给输入框内容赋值
        });  
      },