Files
OpenSquawk/server/utils/validation.ts
2025-09-18 14:03:25 +02:00

28 lines
934 B
TypeScript

const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/i
export function isValidEmail(email: string): boolean {
return EMAIL_REGEX.test(email.trim())
}
export interface PasswordValidationResult {
valid: boolean
message?: string
}
export function validatePasswordStrength(password: string): PasswordValidationResult {
const trimmed = password.trim()
if (trimmed.length < 10) {
return { valid: false, message: 'Passwort muss mindestens 10 Zeichen lang sein.' }
}
if (/\s/.test(trimmed)) {
return { valid: false, message: 'Passwort darf keine Leerzeichen enthalten.' }
}
if (!/[A-Za-zÄÖÜäöüß]/.test(trimmed) || !/[0-9]/.test(trimmed)) {
return { valid: false, message: 'Bitte Buchstaben und Zahlen kombinieren.' }
}
if (!/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/.test(trimmed)) {
return { valid: false, message: 'Mindestens ein Sonderzeichen erhöht die Sicherheit.' }
}
return { valid: true }
}