小程序/js監聽輸入框驗證金額

refundAmoutInput: function(event){
    var value = event.detail.value;
    if (value.split('.')[0].length > 7) {
      if (value.split('.')[1]) {
        value = value.split('.')[0].substr(0, value.split('.')[0].length - 1) + '.' + value.split('.')[1];
      } else {
        value = value.split('.')[0].substr(0, value.split('.')[0].length - 1);
      }
    }
    value = value.replace(/[^\d\.]/g, ""); //清除"數字"和"."之外的字符
    value = value.replace(/^\./g, ""); //驗證第一個字符是數字
    value = value.replace(/\.{2,}/g, "."); //只保留第一個, 清除多餘的
    value = value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
    value = value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
    var refundAmoutStr = 'refundInfo.refundAmout';
    this.setData({
      [refundAmoutStr]: value,
    })
  },

最多7位整數+最多兩位小數點,如超出位數或者輸入其它格式,不顯示輸入;this

相關文章
相關標籤/搜索