如何在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');
posted @ 2020-09-22 10:33  ZJTL  阅读(4836)  评论(0编辑  收藏  举报