feat: 用户名验证支持点号,统一错误消息,完善前端验证

- 后端正则改为 ^[a-zA-Z0-9_.\-]+$ 支持点号
- 统一错误消息使用"连字符"
- 前端 UserFormDialog 和 RegisterDialog 添加实时验证
- 输入框显示格式提示和错误信息
This commit is contained in:
LewisPen
2026-01-27 12:17:19 +08:00
parent e24534668a
commit 9fefa94134
5 changed files with 58 additions and 9 deletions

View File

@@ -314,8 +314,8 @@ class UpdateUserRequest(BaseModel):
if v is None:
return v
if not re.match(r"^[a-zA-Z0-9_-]+$", v):
raise ValueError("用户名只能包含字母、数字、下划线连字符")
if not re.match(r"^[a-zA-Z0-9_.\-]+$", v):
raise ValueError("用户名只能包含字母、数字、下划线连字符和点号")
return v

View File

@@ -103,8 +103,8 @@ class RegisterRequest(BaseModel):
v = v.strip()
if not v:
raise ValueError("用户名不能为空")
if not re.match(r"^[a-zA-Z0-9_-]+$", v):
raise ValueError("用户名只能包含字母、数字、下划线和短横线")
if not re.match(r"^[a-zA-Z0-9_.\-]+$", v):
raise ValueError("用户名只能包含字母、数字、下划线、连字符和点号")
return v
@classmethod
@@ -279,8 +279,8 @@ class CreateUserRequest(BaseModel):
v = v.strip()
if not v:
raise ValueError("用户名不能为空")
if not re.match(r"^[a-zA-Z0-9_-]+$", v):
raise ValueError("用户名只能包含字母、数字、下划线和短横线")
if not re.match(r"^[a-zA-Z0-9_.\-]+$", v):
raise ValueError("用户名只能包含字母、数字、下划线、连字符和点号")
return v
@classmethod