<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.xxif (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.0str = len1 + '.' + len2;} else if (len1 === '0' && Number(len2) > 0) {// 第一位是0, 第二位大于0,用。分隔 -> 0.xstr = len1 + '.' +len2;} else {str = num;}}return str;},