package pkg import ( "fmt" "regexp" ) // 外部用户系统账号约束:ext_ 前缀(可配置)+ 小写字母开头的 2~31 位 [a-z0-9], // 总长不超过 32(Linux 系统账号名上限)。 var ( reUserName = regexp.MustCompile(`^[a-z][a-z0-9]{1,31}$`) reEmail = regexp.MustCompile(`^[^@\s]+@[^@\s]+\.[^@\s]+$`) ) // ValidateUserName 校验申请/创建时使用的用户名(不含 ext_ 前缀)。 func ValidateUserName(name string) error { if !reUserName.MatchString(name) { return fmt.Errorf("用户名只能由小写字母与数字组成,以字母开头,长度 2~32(不含前缀)") } return nil } // ValidateSystemAccount 校验最终系统账号(含前缀)合法性。 func ValidateSystemAccount(account string) error { if len(account) > 32 || len(account) == 0 { return fmt.Errorf("系统账号长度必须在 1~32 之间") } for _, r := range account { if !(r >= 'a' && r <= 'z' || r >= '0' && r <= '9' || r == '_' || r == '-') { return fmt.Errorf("系统账号只能包含小写字母、数字、下划线和连字符") } } return nil } // ValidateEmail 做基础格式校验。 func ValidateEmail(email string) error { if len(email) > 255 || !reEmail.MatchString(email) { return fmt.Errorf("邮箱格式不合法") } return nil }