如何在el-input只能输入数字,及input框数字后保留小数
问题描述
当我们开发项目时,常常想限制用户只能输入纯数字:
解决办法
<el-form-item label="角色Id*" class="redItem"> <el-input type="text" onkeyup="value=value.replace(/[^\d]/g,'')" size="small" width="50" v-model="editRoleParam.roleID" placeholder="请输入数字"> </el-form-item>
可以通过给input添加onkeyup事件来实现;
当输入值的键盘抬起时触发这个事件。this.value表示此输入框的值,/\D/g为正则表达式,用来匹配所有非数字字符;
此句功能为:将输入值为非数字的字符替换为空;
其他得部分正则:
// 先把非数字的都替换掉,除了数字和.
obj.value = obj.value.replace(/[^\d.]/g,"");
// 保证只有出现一个.而没有多个.
obj.value = obj.value.replace(/\.{2,}/g,".");
// 必须保证第一个为数字而不是.
obj.value = obj.value.replace(/^\./g,"");
// 保证.只出现一次,而不能出现两次以上
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
// 只能输入两个小数
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');
// 只能输入六位小数
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d{6}).*$/, '$1$2.$3');