vue input输入框限制输入负号、数字、以及两位小数

只能输入数字

<!-- 只能输入数字,且长度最长为16位(maxlength="16"-->
<el-input
 v-model.trim="form.testA"
 maxlength="16"
 onkeyup="value=value.replace(/\D/g,'')"
 onafterpaste="value=value.replace(/\D/g,'')"
 @blur="form.testA=$event.target.value"

只能输入数字,允许输入小数点,且只能输入两位小数(正数、0)

<!-- 只能输入数字,允许输入小数点,且只能输入两位小数(正数) -->
<el-input
 v-model.trim="form.testA"
 maxlength="16"
 oninput="value=value.replace(/^\D*([0-9]\d*\.?\d{0,2})?.*$/,'$1')"
 @blur="form.testA=$event.target.value"
/>

只能输入数字,允许输入小数点和负号,且只能输入两位小数(正数、负数、0)

<!-- 只能输入数字,允许输入小数点和负号,且只能输入两位小数(正数、负数、0-->
<el-input
  v-model.trim="form.testA"
  maxlength="16"
  oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
  @blur="form.testA=$event.target.value"
/>

若输入中文后,在输入正确的值,值没有变化、显示上一次的值,可在@change中传入$event:

<!--  -->
<el-input
  v-model.trim="form.testA"
  maxlength="16"
  oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')"
  @blur="form.testA=$event.target.value"
  @change="changeContent(row, $index, $event)"
/>
 
changeContent(row,index,event) {
  this.$set(row, 'testA', event) // 赋值
}

参考地址:https://blog.csdn.net/Sweet_Waf/article/details/129661493