import { z } from 'zod' export const registerSchema = z.object({ username: z.string() .min(3, '用户名至少3个字符') .max(20, '用户名最多20个字符') .regex(/^[a-zA-Z0-9_]+$/, '用户名只能包含字母、数字和下划线'), email: z.string() .optional() .refine( (val) => !val || /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(val), '请输入有效的邮箱地址' ), password: z.string() .min(6, '密码至少6位') .max(20, '密码最多20位'), confirmPassword: z.string() }).refine((data) => data.password === data.confirmPassword, { message: '两次输入的密码不一致', path: ['confirmPassword'] }) export type RegisterFormData = z.infer