允许验证器中的空字符串 .js

Allowing empty strings in Validator.js

提问人:Aslan 提问时间:11/14/2023 更新时间:11/14/2023 访问量:28

问:

我正在尝试结合Zod和Validator.js来验证表单数据。我想允许可选字段使用空字符串。我认为这个片段应该有效,但它没有,我无法弄清楚:""

const alpha = (maxChar: number = 1) =>
  z
    .string()
    .toUpperCase()
    .max(maxChar)
    .refine((value) =>
      validator.isAlpha(value.replaceAll(" ", ""), "en-US", { ignore: "" })
    )
JavaScript 速成验证器 zod 验证器:.js

评论


答:

0赞 Shaavin 11/14/2023 #1

问题出在您对房产的使用上。此属性正在检查条件,对于空字符串返回 false。您可以通过以下简单调整启用空字符串:.refinevalidator.isAlpha(value)

const alpha = (maxChar: number = 1) =>
  z
    .string()
    .toUpperCase()
    .max(maxChar)
    .refine((value) => 
      validator.isAlpha(value) || value.length === 0
    );                      // ^^^^^^ here!