Spaces:
Sleeping
Sleeping
| /** | |
| * Password strength validation utility | |
| * Requirements: | |
| * - At least 8 characters | |
| * - Contains at least one letter | |
| * - Contains at least one number | |
| * - Contains at least one special character | |
| */ | |
| export interface PasswordValidationResult { | |
| isValid: boolean; | |
| errors: string[]; | |
| } | |
| export const validatePasswordStrength = (password: string): PasswordValidationResult => { | |
| const errors: string[] = []; | |
| // Check minimum length | |
| if (password.length < 8) { | |
| errors.push('Password must be at least 8 characters long'); | |
| } | |
| // Check for at least one letter | |
| if (!/[a-zA-Z]/.test(password)) { | |
| errors.push('Password must contain at least one letter'); | |
| } | |
| // Check for at least one number | |
| if (!/\d/.test(password)) { | |
| errors.push('Password must contain at least one number'); | |
| } | |
| // Check for at least one special character | |
| if (!/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/.test(password)) { | |
| errors.push('Password must contain at least one special character'); | |
| } | |
| return { | |
| isValid: errors.length === 0, | |
| errors, | |
| }; | |
| }; | |
| /** | |
| * Check if a password is the default password (admin123) | |
| */ | |
| export const isDefaultPassword = (plainPassword: string): boolean => { | |
| return plainPassword === 'admin123'; | |
| }; | |