el-input 中自定义校验规则,确保输入的值是合法的数字或小数。

实现方式

1. 使用 pattern 校验规则

在 rules.seconds 中使用 pattern 属性来限制只能输入数字和小数点,并且提供友好的提示信息。

  rules: {
    mileage: [
      { required: true, message: "里程数不能为空", trigger: "blur" },
      { pattern: /^\d+(\.\d+)?$/, message: "请输入有效的数字,支持小数", trigger: "blur" }
    ],
  },

说明:

  • ^\d+(\.\d+)?$ 表示允许整数或带一位小数的数字(例如:100100.5)。
  • trigger: 'blur' 表示在输入框失去焦点时触发校验。
2. 结合输入事件过滤非法字符(可选)

如果你希望在用户输入时就限制只能输入数字和小数点,可以在 <el-input> 上添加 @input 事件进行处理:

<el-form ref="deviceRef" :model="form" :rules="rules" label-width="130px">
   <el-form-item label="里程数(千米)" prop="mileage">
     <el-input
      v-model="form.mileage"
      @input="(value) => form.mileage = value.replace(/[^0-9.]/g, '')"
      placeholder="请输入里程数(千米)"
      />
   </el-form-item>
</el-form>

⚠️ 注意:此方法仅做输入过滤,不替代表单校验逻辑。

🧪 示例效果

输入内容是否通过校验提示信息
100✅ 通过
100.5✅ 通过
abc❌ 不通过“请输入有效的数字,支持小数”
100.5.3❌ 不通过“请输入有效的数字,支持小数”

✅ 最终建议

推荐同时使用 正则校验 + 输入过滤,以提升用户体验并保证数据合法性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值