Files

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.",
)