el-input 如何校验只可以输入正整数

当然可以!你可以直接在 @input 事件中进行简单的处理,而不使用 methods。下面是一个更简洁的示例:

<template>
  <el-input
    v-model="inputValue"
    @input="inputValue = inputValue.replace(/[^1-9]/g, '')"
    placeholder="请输入正整数"
  ></el-input>
</template>

<script>
export default {
  data() {
    return {
      inputValue: ''
    };
  }
};
</script>

说明

  • @input 事件中,直接使用正则表达式来替换非正整数的输入。
  • 这样做更简洁,不需要定义额外的方法。
  • 不过这样会使得el-input的 max失效

当然可以!你可以直接在 @input 事件中处理逻辑,而不使用 methods。以下是更新后的示例代码:

<template>
  <el-input
    v-model="inputValue"
    @input="inputValue = inputValue.replace(/[^1-9]\d*/g, '').slice(0, 4); if (inputValue > 1200) inputValue = '1200'"
    placeholder="请输入正整数(最大值1200)"
  ></el-input>
</template>

<script>
export default {
  data() {
    return {
      inputValue: ''
    };
  }
};
</script>

说明

  • 输入校验replace 方法用于过滤掉非正整数的输入。
  • 最大值限制:直接在同一行检查,如果输入值大于1200,则将其重置为1200。
  • slice(0, 4):确保输入值不会超过4位(最大值1200有4位)。

这样实现了在 @input 事件中直接处理逻辑,保持代码的简洁性。

posted @ 2024-10-29 11:12  盘思动  阅读(1220)  评论(0)    收藏  举报