Validation Rules & Error Messages
Apply built-in validation rules (required, minLength, pattern) and display error messages.
Validation Rules & Error Messages is a free React Academy lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the React Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Welcome
Built-in Validation Rules
<input
{...register('email', {
required: 'Email is required',
pattern: {
value: /^[^@]+@[^@]+\.[^@]+$/,
message: 'Invalid email address',
},
})}
/>Required Fields
register('name', { required: 'Name is required' })
// or
register('name', { required: true })Length Constraints
register('username', {
minLength: { value: 3, message: 'At least 3 characters' },
maxLength: { value: 20, message: 'At most 20 characters' },
})Pattern Validation
register('phone', {
pattern: {
value: /^[0-9]{10,11}$/,
message: 'Enter a valid phone number',
},
})Displaying Errors
const { register, handleSubmit, formState: { errors } } = useForm();
<input {...register('email', { required: 'Required' })} />
{errors.email && <p className="error">{errors.email.message}</p>}Custom Validation with validate
register('age', {
validate: value =>
parseInt(value) >= 18 || 'You must be at least 18',
})Multiple Custom Validators
register('password', {
validate: {
hasUpper: v => /[A-Z]/.test(v) || 'Needs uppercase',
hasDigit: v => /[0-9]/.test(v) || 'Needs a number',
}
})Showing Error Count
const hasErrors = Object.keys(errors).length > 0;
<button type="submit" disabled={hasErrors}>Submit</button>Styling Error Inputs
<input
{...register('email', { required: true })}
className={errors.email ? 'input-error' : ''}
/>Quick Check
Recap
Up Next
Frequently asked questions
Is the “Validation Rules & Error Messages” lesson free?
Yes — the full text of “Validation Rules & Error Messages” is free to read here on the web, and the React Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the React Academy course, upgrade to CoddyKit PRO.
What will I learn in “Validation Rules & Error Messages”?
Apply built-in validation rules (required, minLength, pattern) and display error messages. You practise React Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start React Academy?
No prior experience is required. React Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Validation Rules & Error Messages” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this React Academy lesson?
Yes. Every React Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Getting Started with React Hook Form
- Validation Rules & Error Messages
- Schema Validation with Zod
- Dynamic Fields with useFieldArray