Element input 正则验证 数字包含正负数 小数点 只包含一个小数点 一个 '-'
<el-input placeholder v-model="scope.row[index]"
oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')">
</el-input>
elementui el-input组件限制只能输入数字且小数点为3位、只有一位小数点、0开头后面不是小数点则以数字替换、自动补全
<el-input
v-model="scope.row.num"
size="mini"
oninput="
this.value=this.value.replace(/\D*(\d*)(\.?)(\d{0,3})\d*/,'$1$2$3') // 只能输入数字、小数点限制3位
.replace(/^0+(\d)/, '$1') // 第一位0开头,0后面为数字,则过滤掉,取后面的数字
.replace(/^\./, '0.') // 如果输入的第一位为小数点,则替换成 0. 实现自动补全
.match(/^\d*(\.?\d{0,3})/g)[0] || '' // 数字开头、小数点3位
"
/>
<!-- 只能输入正负数和小数点 -->
<el-input
v-model="form.itemnum"
:placeholder="$t('info.pleaseInput') + datas.itemName"
@input="digitalVerification"
></el-input>
digitalVerification(ipt) {
let data = String(ipt);
const char = data.charAt(0);
// 先把非数字的都替换掉
data = data
// 转化为数字形式--包含小数,负数
// 先把非数字的都替换掉,除了数字和.
.replace(/[^\d.]/g, '')
// 必须保证第一个为数字而不是.
.replace(/^\./g, '')
// 保证只有出现一个.而没有多个.
.replace(/\.{2,}/g, '.')
// 保证.只出现一次,而不能出现两次以上
.replace('.', '$#$')
.replace(/\./g, '')
.replace('$#$', '.')
// 第一位0开头,0后面为数字,则过滤掉,取后面的数字
.replace(/^0+(\d)/, '$1')
// 如果输入的第一位为小数点,则替换成 0. 实现自动补全
.replace(/^\./, '0.');
// 如果第一位是负号,则允许添加
if (char === '-') {
data = '-' + data;
}
this.form.itemnum = data;
},
或者直接输入框中验证:
<!-- 数字 -->
<el-input
style="width: 220px"
v-model="item.detail"
:placeholder="$t('info.pleaseInput') + item.supplementName"
v-if="item.supplementInputTypeId == 6"
oninput="value=value.replace(/[^\d.]/g, '')
.replace(/^-(0[0-9])/,'') //验证首位出现类似于-01,-02(验证首个字符为负号加这行就行)
.replace(/^\./g, '')
.replace(/\.{2,}/g, '.')
.replace('.', '$#$')
.replace(/\./g, '')
.replace('$#$', '.')
.replace(/^0+(\d)/, '$1')
.replace(/^\./, '0.')"
></el-input>
正负数,小数保留2位小数
function clearinteger(obj){
obj.value = obj.value.replace("-.","%$%").replace(/\-\./g,"").replace("%$%","-");
obj.value = obj.value.replace(".-","$#$").replace(/\.\-/g,"").replace("$#$",".");
obj.value = obj.value.replace(/[^-\d.]/g,""); //清除"数字"和"."以外的字符
obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字而不是
obj.value = obj.value.replace(/^(0[0-9])/,""); //验证首位出现类似于01,02的金额
obj.value = obj.value.replace(/^-(0[0-9])/,""); //验证首位出现类似于-01,-02的金额
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");//只保留第一个. 清除多余的
obj.value = obj.value.replace("-","$%$").replace(/\-/g,"").replace("$%$","-");//只保留第一个- 清除多余的
obj.value = obj.value.replace(/\d{1,}-|\d{1,}\.\d{1,2}-/,"");//不能在数字后面输入-
// obj.value = obj.value.replace(/^(-)?(\d+)\.(\d\d\d).*$/,'$1$2.$3'); //只能输入三位小数
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3');//只能输入两个小数
}
验证正负整数
function getinteger(obj){
obj.value = obj.value.replace("-","%$%").replace(/\-/g,"").replace("%$%","-");
obj.value = obj.value.replace(/[^-\d]/g,""); //清除"数字"和"."以外的字符
obj.value = obj.value.replace(/^\./g,""); //验证第一个字符是数字而不是
obj.value = obj.value.replace(/^(0[0-9])/,""); //验证首位出现类似于01,02的金额
obj.value = obj.value.replace(/^-(0[0-9])/,""); //验证首位出现类似于-01,-02的金额
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");//只保留第一个. 清除多余的
obj.value = obj.value.replace("-","$%$").replace(/\-/g,"").replace("$%$","-");//只保留第一个- 清除多余的
obj.value = obj.value.replace(/\d{1,}-|\d{1,}\.\d{1,2}-/,"");//不能在数字后面输入-
}