<input bindinput="moneyInput" type='digit' maxlength='10' value="{{money}}"/>
moneyInput(e) {
   let price = e.detail.value;

   price = price.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符
   price = price.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的
   price = price.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
   price = price.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数
   // 去除整数前的0和小数点后多余的0,如011.020300 =》 11.0203
   const reg1 = /0*([1-9]\d*|0\.\d+)/;
   const reg2 = /(?:\.0*|(\.\d+?)0+)$/;
   price = price.replace(reg1, '$1').replace(reg2, '$1');
    this.setData({
      price
    })
  },

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐