Element input 正则验证 数字包含正负数 小数点 只包含一个小数点 一个 '-'

 

转自于:https://www.cnblogs.com/qfcddl/p/13389566.html

 

<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位
"
/>

  

————————————————
版权声明:本文为CSDN博主「拾一九」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/DarlingYL/article/details/125875098

  <!-- 只能输入正负数和小数点 -->
            <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>

  

另外知识扩充推荐: 原文链接:https://blog.csdn.net/qq_38181746/article/details/125672547

输入框验证可以输入正负数,小数保留两位小数
在使用input输入金额时,对金额做校验
在使用input输入金额时,对金额做校验
<input class="layui-input" name="balance" id="clientinfo_balance" onkeyup="clearinteger(this)" lay-verify="required" autocomplete="off" />

// 正负数,小数保留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}-/,"");//不能在数字后面输入-
}

  

posted @ 2022-09-07 11:24  Ao_min  阅读(2048)  评论(0编辑  收藏  举报