naim-firebase-auth-wrapper
Version:
React components and hooks for Firebase Authentication and Firestore with Mantine UI
50 lines • 1.9 kB
JavaScript
export const validateEmail = (email) => {
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return {
isValid: emailRegex.test(email),
error: emailRegex.test(email) ? '' : 'Please enter a valid email address'
};
};
export const validatePassword = (password) => {
if (!password) {
return { isValid: false, error: 'Password is required' };
}
if (password.length < 8) {
return { isValid: false, error: 'Password must be at least 8 characters' };
}
if (!/(?=.*[a-z])/.test(password)) {
return { isValid: false, error: 'Password must contain at least one lowercase letter' };
}
if (!/(?=.*[A-Z])/.test(password)) {
return { isValid: false, error: 'Password must contain at least one uppercase letter' };
}
if (!/(?=.*\d)/.test(password)) {
return { isValid: false, error: 'Password must contain at least one number' };
}
if (!/(?=.*[!@#$%^&*])/.test(password)) {
return { isValid: false, error: 'Password must contain at least one special character (!@#$%^&*)' };
}
return { isValid: true, error: '' };
};
export const validateName = (name) => {
if (!name.trim()) {
return { isValid: false, error: 'Name is required' };
}
if (name.trim().length < 2) {
return { isValid: false, error: 'Name must be at least 2 characters' };
}
if (!/^[a-zA-Z\s]*$/.test(name)) {
return { isValid: false, error: 'Name can only contain letters and spaces' };
}
return { isValid: true, error: '' };
};
export const validatePhone = (phone) => {
if (!phone)
return { isValid: true, error: '' }; // Optional field
const phoneRegex = /^\+?[\d\s-]{10,}$/;
return {
isValid: phoneRegex.test(phone),
error: phoneRegex.test(phone) ? '' : 'Please enter a valid phone number'
};
};
//# sourceMappingURL=validation.js.map