记录:input框限制输入整数或保留两位小数

441 阅读1分钟

需求:输入金额 限制:1、可输入整数、或1-2位小数 2、不允许以小数点结束 3、不允许以0开头 4、不允许输入数字和小数点以外的值

// html
          <el-input
            placeholder="请输入"
            v-model="formData.budgetAmount"
            oninput="value=value
            .replace(/[^\d^\.]+/g, '')  // 限制输入数字和小数点以外的值
            .replace(/^0+(\d)/, '$1')  // 限制输入以0开头的值
            .replace(/^\./, '0.')   // 以小数点开头的值,替换为0.xxx
            .match(/^\d*(\.?\d{0,2})/g)[0] || ''"  // 以数字开头,只有一个小数点,而且小数点后面只能有0到2位小数
            @blur="handleAmountBlur"
          >
          
          
  // js
    handleAmountBlur(e) {
    // 限制输入值以小数点结尾
      if (new RegExp(/\.$/).test(e.target.value)) {
        this.formData.budgetAmount = e.target.value.replace(/(\d*)\.$/, '$1')
      }
    }