输入金额校验(数字非负数保留2位不四舍五入)

场景用于支付时,输入金额,限制只能输入非负数,保留2位小数,且不四舍五入
如果你的input不是number类型需要先处理一下number类型

以下举例环境 vue3 + vant-ui
请自行根据实际场景使用

html

<van-field v-model="amountIptUse" @input="amountInput(amountIptUse, 'amountIptUse')" type="number" :maxlength="10" autocomplete="off" clearable/>

js

const amountInput = (value, key) => {
    
    

  // 排除空的情况
  if (value.length === 0) return;

  // 限制负数
  if (value.indexOf('-') !== -1) {
    
    
    params[key] = '';
  }

  // 去除首个.
  if (value.length > 1 && ['.'].includes(value.substr(0, 1))) {
    
    
    // console.log('==match:', value);
    params[key] = value.substr(1);
  }

  // 保留2位不四舍五入
  if (value.length > 4 && value.indexOf('.') !== -1) {
    
    

    console.log('==拼装=>', value.split('.')[0], value.split('.')[1].substring(0, 2));
    params[key] = value.split('.')[0] + '.' + value.split('.')[1].substring(0, 2);
  }
}

猜你喜欢

转载自blog.csdn.net/weixin_34403976/article/details/128282202