Element input 正则验证

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue是一种流行的JavaScript框架,用于构建用户界面。它采用了组件化的开发方式,使得开发者可以将页面拆分成独立的、可复用的组件。el-table是Vue中的一个表格组件,而el-input是一个输入框组件。 在el-table中使用el-input进行行内校验的方法如下: 1. 首先,在el-table的每一行中使用el-input组件来渲染需要进行校验的单元格。 2. 在el-input上使用Vue的校验指令(如v-model和:rules)来实现校验功能。 3. 在Vue实例中定义校验规则,并将其应用到el-input上。 下面是一个示例代码: ```html <template> <el-table :data="tableData"> <el-table-column prop="name" label="姓名"> <template slot-scope="scope"> <el-input v-model="scope.row.name" :rules="nameRules"></el-input> </template> </el-table-column> <el-table-column prop="age" label="年龄"> <template slot-scope="scope"> <el-input v-model="scope.row.age" :rules="ageRules"></el-input> </template> </el-table-column> </el-table> </template> <script> export default { data() { return { tableData: [ { name: '张三', age: 20 }, { name: '李四', age: 25 }, // ... ], nameRules: [ { required: true, message: '姓名不能为空', trigger: 'blur' }, // 其他校验规则 ], ageRules: [ { required: true, message: '年龄不能为空', trigger: 'blur' }, // 其他校验规则 ] }; } }; </script> ``` 在上述代码中,我们使用了el-table组件来展示数据,并在每一列中使用el-input组件进行编辑。通过给el-input组件绑定v-model指令,可以实现数据的双向绑定。同时,通过给el-input组件绑定:rules指令,可以定义校验规则。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值