33 lines
1.0 KiB
Python
33 lines
1.0 KiB
Python
import re
|
|
|
|
|
|
def validate_username(username: str) -> tuple[bool, str]:
|
|
"""
|
|
Validate username based on:
|
|
- Only letters, numbers, and underscores.
|
|
- No spaces.
|
|
- At least 3 characters long.
|
|
"""
|
|
if re.match(r"^[a-zA-Z0-9_]{3,}$", username):
|
|
return True, ""
|
|
return (
|
|
False,
|
|
"Username must be at least 3 characters, contain only letters, numbers, and underscores, and cannot contain spaces.",
|
|
)
|
|
|
|
|
|
def validate_password(password: str) -> tuple[bool, str]:
|
|
"""
|
|
Validate password based on:
|
|
- At least 8 characters long.
|
|
- Must contain at least one digit.
|
|
- Must contain at least one special character (e.g., !@#$%^&*).
|
|
- Cannot contain spaces.
|
|
"""
|
|
if re.match(r"^(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':\"\\|,.<>?/`~])[A-Za-z\d!@#$%^&*()_+\-=\[\]{};':\"\\|,.<>?/`~]{8,}$", password):
|
|
return True, ""
|
|
return (
|
|
False,
|
|
"Password must be at least 8 characters long, contain at least one digit, one special character, and no spaces.",
|
|
)
|