// 根据限制条件输出一个数字
Vue.prototype.getNumberByLimit = function (event, precision, length, min, max) {
let value = event.target.value
if (precision === 0 && value) {
// 精度为0,不能输小数点
value = value.split('.')[0]
}
let str = '(\\-)?\\d{0,'+length+'}(\\.\\d{0,' + precision + '})?'
let re = new RegExp(str)
let flag = false // 是否是负数
if (value.indexOf('-') === 0) {
flag = true
}
if (value.indexOf('00') === 0 || value.indexOf('-00') === 0) {
// 以00开头的字符串
return flag ? '-' + '0' : '0'
}
let returnvalue = value.replace(/,/g, '').match(re) ? value.replace(/,/g, '').match(re)[0] : ''
debugger
// 存在最小值
if (returnvalue && returnvalue!=='-' && !isNaN(Number(min))) {
if (Number(returnvalue) <= Number(min)) {
return '' + min
}
}
if (returnvalue && returnvalue!=='-' && !isNaN(Number(max))) {
if (Number(returnvalue) >= Number(max)) {
return '' + max
}
}
return returnvalue
}
<input class="el-input__inner" style="width:269px" v-model="inputType.value" @input ="inputType.value=changeNumberPrecision($event, 3,2,0,999)" />