| 1234567891011121314151617181920212223242526 |
- 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<typeof registerSchema>
|