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
相关产品推荐
相关产品推荐

