已知可结合Validator.js与Zod校验字母数字值,Zod是否内置无需正则的校验方法?
Zod 内置字母数字校验方法(无需正则)
Zod 确实提供了无需依赖正则表达式的内置方法来校验字母数字值——z.string().alphanumeric(),这个方法专门用来校验字符串是否仅包含大小写字母和数字。
基础用法示例
import { z } from "zod"; const alphanumericSchema = z.string().alphanumeric(); // 校验通过的情况 alphanumericSchema.parse("abc123"); // 正常返回"abc123" alphanumericSchema.parse("XYZ789"); // 正常返回"XYZ789" // 校验失败的情况 alphanumericSchema.parse("abc!@#"); // 抛出ZodError,包含非字母数字字符 alphanumericSchema.parse("123 456"); // 抛出ZodError,包含空格
补充说明
- 默认情况下,
.alphanumeric()只允许a-z、A-Z和0-9的字符组合,不包含下划线、连字符等特殊符号。 - 如果你的场景需要允许额外的字符(比如下划线),那还是得结合正则表达式,但单纯的字母数字校验,用这个内置方法完全足够,比自己写
z.string().regex(/^[a-zA-Z0-9]+$/)更简洁直观。
内容的提问来源于stack exchange,提问作者Aslan
相关产品推荐
相关产品推荐

