el-input 限制输入框只能输入数字和小数

<el-input v-model.trim="rate" @input="inputChange" @change="onChange"></el-input>

inputChange(value) {
  	let newValue = value.replace(/[^0-9.]/g, '')
	if (newValue) {
		// 判断是否有多个.
		if (newValue.split('.').length >= 3 && newValue.charAt(newValue.length - 1) === '.') {
		  newValue = newValue.substring(0, newValue.length - 1)
		}
		// 首位是.或者是0开头但不是以0.开头的
		if (newValue.charAt(0) === '.' || (newValue.length > 1 && newValue.charAt(0) === '0' && !newValue.startsWith('0.'))) {
		  newValue = newValue.substring(1)
		}
	}
    this.rate = newValue
},

// 解决失去焦点或回车时最后一位是.的问题
onChange() {
   let newValue = this.rate
   if (newValue && newValue.charAt(value.length - 1) === '.') {
      newValue = newValue.substring(0, value.length - 1)
   }
   this.rate = newValue
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值