You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue+Valibot如何验证选择器值是否在有效数组内?有无预置验证器?

Valibot 预置验证器实现数组包含校验

Valibot 提供了**v.includes()**预置验证器,专门用于校验值是否存在于指定数组中,比自定义custom验证器更简洁直观。

代码示例

import * as v from "valibot";

const validValues = ['1', '2', '4'];

const Schema = v.object({
  user: v.string([
    v.regex(/^\d+$/), // 校验是否为数字格式字符串
    v.includes(validValues, "请选择有效的用户ID") // 预置验证器校验是否在有效数组中
  ]),
});

进阶:固定枚举值场景

如果你的有效ID是固定不变的枚举值,还可以用**v.enum()**同时实现类型约束与验证,在TypeScript环境下还能获得类型推断支持:

import * as v from "valibot";

// 定义有效用户ID的枚举类型
const ValidUserId = v.enum(['1', '2', '4']);

const Schema = v.object({
  // 由于enum已经限定了值为指定的数字字符串,正则校验可省略(若需严格确保输入格式也可保留)
  user: ValidUserId,
});
  • v.includes() 适合动态数组的校验场景
  • v.enum() 适合固定枚举值场景,兼具类型提示能力

内容的提问来源于stack exchange,提问作者ssr765

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 20:10:58