let PriceNumberInput = document.getElementById('priceInput')
let priceNumber = PriceNumberInput.value
let regStrs = [
['[^\\d\\.]+$', ''], // 禁止录入任何非数字和点
['\\.(\\d?)\\.+', '.$1'], // 禁止录入两个以上的点
['^(\\d+\\.\\d{2}).+', '$1'] // 禁止录入小数点后两位以上
]
if(priceNumber !== '' && priceNumber !== 0){
for (let i = 0; i < regStrs.length; i++) {
let reg = new RegExp(regStrs[i][0])
priceNumber = priceNumber.replace(reg, regStrs[i][1])
}
}
if(PriceNumberInput.value !== priceNumber){
PriceNumberInput.value = priceNumber
}
1. vue项目可将input的type设置为text
2. 测试element-ui的el-input尝试这样强制修改input的value属性失败
3. v-model双向绑定的input输入框,会出现priceNumber的值改变,视图没进行改变,故需要增加input的value是否与priceNumber的值相等,如不等可手动进行修改
--------------------------------- 整数 ---------------------------
if(num !== '' && num !== 0){
num = num.replace(/[^\d]/g, '')
}
if (numInput.value !== num) {
numInput.value = num
}
注意:
1. input的type需为text