如何在Zod中移除字符串的所有空白字符?
Zod字符串移除所有空白字符的实现办法
Zod自带的trim()只能清理首尾空白,要移除所有空白的话,用transform方法做预处理就行,直接替换掉原代码里的.trim():
const stp = z.string({ invalid_type_error: '', required_error: '', }) // 全局移除所有空白字符(空格、换行、制表符都包含在内) .transform(val => val.replace(/\s/g, '')) .min(1, { message: '' }) .max(10, { message: '' }) .regex(reg, { message: '', });
补充说明:
transform会先对输入字符串做处理,后续的min、max、regex校验都是基于处理后的无空白字符串执行的- 正则
/\s/g里的\s匹配所有类型的空白字符,g标记确保替换所有匹配项;如果只需要移除空格(保留换行、制表符),可以把正则改成/ /g - 要是你只想在校验时忽略空白,但保留原始输入值,可以用
refine方法,但多数业务场景下transform更实用,因为处理后的值就是你最终要用的无空白版本
内容的提问来源于stack exchange,提问作者I try so hard but I cry harder
相关产品推荐
相关产品推荐

