<el-input v-model.trim="sup.moq" class="input-with-select" type="number"
oninput="value=value.replace(/^\D*(\d*(?:\.\d{0,4})?).*$/g, '$1')">
缺点:可以在整数输入完成后,光标定到数字中间,可以输入 .
进一度优化:
oninput="value=value.replace(/\D/g, '').replace(/^0{1,}/g, '')"
el-input限制输入小数点后两位,不限制正数或者负数
<el-input type="number" v-model="value" @keyup.native="value=oninput(value)"></el-input>
// js方法
// 限制金额只保留小数点后两位
oninput(num) {
var str = JSON.parse(JSON.stringify(num));
let int = ''; // 整数部分
var point = ''; // 小数部分
var len1 = str.substr(0, 1);
var len2 = str.substr(1, 1);
if (str.indexOf('.') > -1) {
int = str.substring(0,str.indexOf('.')); // 取整数
//如果第一位是-,第二位是. 用0补位 -0.xx
if (len1 === '-' && len2 === '.') {
int = len1 + '0';
}
//如果第一位是. 第一位数字用0补位
if (len1 === '.') {
int = '0';
}
point = str.substr(str.indexOf('.')+1,2); // 取小数点后两位
str = int + '.' + point;
} else {
if(len1 === '0' && len2 === '0') {
// 第一位是0, 第二位也是0时,用。分隔 -> 0.0
str = len1 + '.' + len2;
} else if (len1 === '0' && Number(len2) > 0) {
// 第一位是0, 第二位大于0,用。分隔 -> 0.x
str = len1 + '.' +len2;
} else {
str = num;
}
}
return str;
},