First Commit
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
export const emailSchema = {
|
||||
required: 'Email is required',
|
||||
pattern: { value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i, message: 'Invalid email address' }
|
||||
};
|
||||
|
||||
export const passwordSchema = {
|
||||
required: 'Password is required',
|
||||
minLength: { value: 8, message: 'Password must be at least 8 characters' },
|
||||
validate: {
|
||||
noSpaces: (value) => !/\s/.test(value) || 'Password cannot contain spaces',
|
||||
hasUpperCase: (value) => /[A-Z]/.test(value) || 'Password must have at least one uppercase letter',
|
||||
hasNumber: (value) => /[0-9]/.test(value) || 'Password must have at least one number',
|
||||
hasSpecialChar: (value) => /[!@#$%^&*(),.?":{}|<>]/.test(value) || 'Password must have at least one special character'
|
||||
}
|
||||
};
|
||||
|
||||
export const firstNameSchema = {
|
||||
required: 'First name is required',
|
||||
pattern: { value: /^[a-zA-Z\s]+$/, message: 'Invalid first name' },
|
||||
validate: {
|
||||
trim: (value) => {
|
||||
const trimmedValue = value.trim();
|
||||
return trimmedValue.length > 0 || 'First name cannot be empty or contain only spaces';
|
||||
}
|
||||
},
|
||||
onBlur: (e) => {
|
||||
e.target.value = e.target.value.trim();
|
||||
}
|
||||
};
|
||||
|
||||
export const lastNameSchema = {
|
||||
required: 'Last name is required',
|
||||
pattern: { value: /^[a-zA-Z\s]+$/, message: 'Invalid last name' },
|
||||
validate: {
|
||||
trim: (value) => {
|
||||
const trimmedValue = value.trim();
|
||||
return trimmedValue.length > 0 || 'Last name cannot be empty or contain only spaces';
|
||||
}
|
||||
},
|
||||
onBlur: (e) => {
|
||||
e.target.value = e.target.value.trim();
|
||||
}
|
||||
};
|
||||
|
||||
export const usernameSchema = {
|
||||
required: 'Username is required',
|
||||
pattern: {
|
||||
value: /^[a-zA-Z0-9._]+$/, // Alphanumeric, underscores, and dots
|
||||
message: 'Username can only contain letters, numbers, dots, and underscores'
|
||||
},
|
||||
validate: {
|
||||
trim: (value) => {
|
||||
const trimmedValue = value.trim();
|
||||
return trimmedValue.length > 0 || 'Username cannot be empty or contain only spaces';
|
||||
},
|
||||
noSpaces: (value) => {
|
||||
return !/\s/.test(value) || 'Username cannot contain spaces';
|
||||
}
|
||||
},
|
||||
onBlur: (e) => {
|
||||
e.target.value = e.target.value.trim();
|
||||
}
|
||||
};
|
||||
|
||||
export const contactSchema = {
|
||||
required: 'Contact number is required',
|
||||
pattern: { value: /^[0-9()\-\.]{7,15}$/, message: 'Invalid contact number' }
|
||||
};
|
||||
|
||||
export const otpSchema = {
|
||||
required: 'OTP is required',
|
||||
minLength: { value: 6, message: 'OTP must be exactly 6 characters' }
|
||||
};
|
||||
Reference in New Issue
Block a user