网上一搜,一片一片的资料,可是有效的往往很少,可能是因为自己没搞懂吧
el-input
<el-input
v-model="modelValue"
type="text"
min="0"
:change="checkValue()"
>
</el-input>
...
* methods *
checkValue(){
var value = '' + this.modelValue.toString();
value = value
.replace(/[^\d.]/g, '') // 清除“数字”和“.”以外的字符
.replace(/\.{2,}/g, '.') // 只保留第一个. 清除多余的
.replace(/^\./g, '') //保证第一个为数字而不是.
.replace('.', '$#$')
.replace(/\./g, '')
.replace('$#$', '.')
.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); // 只能输入两个小数
if (value.indexOf('.') < 0 && value != '') {
// 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
value = parseFloat(value);
}
this.modelValue = value;
}
网友评论