<van-field
        v-model="curValue"
        label="充值金额"
        placeholder="请输入充值金额"
        type="number"
        input-align="right"
        @input="numberFixedDigit"
    />
/**
 * 格式化输入金额
 * @param e
 */
function numberFixedDigit(e) {
  e.target.value = e.target.value.replace(/[^\d.]/g, "");  //清除“数字”和“.”以外的字符
  e.target.value = e.target.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
  e.target.value = e.target.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
  e.target.value = e.target.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');//只能输入两个小数
  e.target.value = e.target.value.replace(/^\./g, ''); //首位不能输入“.”
  if (e.target.value.indexOf(".") < 0 && e.target.value != "") {//如果没有小数点,首位不能为0,如01、02...
    e.target.value = parseFloat(e.target.value);
  }
  nextTick(() => {
    curValue.value = e.target.value
  })
}
Logo

前往低代码交流专区

更多推荐