用于el-input的input方法
// 处理正数
handelPositiveNumber(val, decimalPlace = 0) { //val=输入的值 ,decimalPlace保留小数位数
val = val.replace(/[^\d.]/g, ""); // 保留数字
val = val.replace(/^00/, "0"); // 开头不能有两个0
val = val.replace(/^\./g, "0."); // 开头为小数点转换为0.
val = val.replace(/\.{2,}/g, "."); // 两个以上的小数点转换成一个
val = val.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); // 只保留一个小数点
/^0\d+/.test(val) ? val = val.slice(1) : ''; // 两位以上数字开头不能为0
const str = '^(\\d+)\\.(\\d{' + decimalPlace + '}).*$';
const reg = new RegExp(str);
if (!decimalPlace) {
// 不需要小数点
val = val.replace(reg, '$1');
} else {
// 通过正则保留小数点后指定的位数
val = val.replace(reg, '$1.$2');
}
return val;
},
//处理负数 value=input输入的值 precision保留位数
value = value.replace(/^\-/g, "$#$").replace(/\-/g, "").replace("$#$", "-"); // 只保留首位的负号
value = value.replace(/\-{2,}/g, "-"); // 两个以上的负号转换成一个
if (value.indexOf('-') !== -1) { // 包含负号的时候看作正数处理
const val1 = value.slice(1);
value = '-' + this.handelPositiveNumber(val1, this.precision);
} else {
value = this.handelPositiveNumber(value, this.precision);
}
el-input控制正负数,小数的数字输入框方法
最新推荐文章于 2024-05-23 11:38:15 发布