1 wxml

<van-field
      value="{{ formdata.money }}"
      bind:change="moneyChange"
      type="number"
      placeholder=""
      border="{{ false }}"
      />

 

2 js

moneyChange(e){
    var that = this
    var value = that.formatDouble(e.detail)
    that.setData({
      'formdata.money':value
    })

 

  formatDouble(value){
    if (value === '') {
      return '';
    }
     // 核心过滤逻辑(清除非数字和小数点,确保格式正确)
     value = value.replace(/[^\d.]/g, ""); // 只保留数字和点
     value = value.replace(/^\./g, "");    // 点不能在开头
     value = value.replace(/\.{2,}/g, "."); // 不能有连续的点
     value = value.replace(/(\..*)\./g, '$1'); // 只能有一个点
     
     // 4. 限制小数点后最多两位
     const index = value.indexOf('.');
     if (index !== -1 && value.length - index > 3) {
       value = value.substring(0, index + 3);
     }
     return value
  }