vue input只能输入两位小数的,不能是负数

input 设置为text,number类型能输入负值和 ‘e’

export const getNumber = (val,oldval, l) => {  //val新值,oldval旧值,l,小数点后面保留的位数
    var reg2 = /^\d+(\.\d{0,2})?$/
  let mum = val
  let nmb = l + 1
  if (!reg2.test(val)) {
    mum = parseFloat(val)
  }
  if (val[0] === '0' && val[1] !== '.' && val.toString().length > 1) {
    mum = val.replace(/^0+/, '')
  }
  if (val[0] === '0' && val[1] === '0' && val.toString().length > 1) {
    mum = 0
  }
  let i = val.toString().indexOf('.')
  if (val.toString().indexOf('.') > 0 && val.toString().length > (val.toString().indexOf('.') + 2)) {
    mum = val.toString().substring(0, i + nmb)
  }
  if (isNaN(val)) {
    mum = oldval
  }
  if (val === '' || val == null) {
    mum = ''
  }
  return mum
}

  1. 这种小数点后面没数字的 需要在失去焦点的时候提示用户,或者给input绑定一个失去焦点触发的方法,如果失去焦点最后一个是小数点的话就去掉小数点
    遇见问题,留作参考
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值