Validation
FormKit Gov provides Zod schema factories for common government form fields.
Schema Factories
| Factory | Description |
|---|---|
createTextSchema | Text with length limits |
createEmailSchema | Email validation |
createPhoneSchema | US phone numbers |
createSSNSchema | Social Security Numbers |
createNameSchema | Single name field |
createDateSchema | Date validation |
createMemorableDateSchema | Memorable date (month/day/year) |
createCurrencySchema | Currency amounts |
createFileSchema | File upload validation |
createAddressSchema | Complete address |
createFullNameSchema | Full name fields |
Usage
import { z } from 'zod';
import {
createTextSchema,
createEmailSchema,
createPhoneSchema,
createSSNSchema,
} from '@formkit-gov/core/schemas';
const contactSchema = z.object({
firstName: createTextSchema({ required: true, max: 50 }),
lastName: createTextSchema({ required: true, max: 50 }),
email: createEmailSchema(),
phone: createPhoneSchema({ required: false }),
ssn: createSSNSchema(),
});Schema Options
Most schema factories accept an options object:
createTextSchema({
required: true, // Is field required?
min: 2, // Minimum characters
max: 100, // Maximum characters
messages: {
// Custom error messages
required: 'Please enter your name',
min: 'Name is too short',
max: 'Name is too long',
},
});Custom Messages
Override default error messages:
const schema = createSSNSchema({
messages: {
required: 'Social Security Number is required for this application',
invalid: 'Please enter a valid 9-digit SSN',
},
});Validation Patterns
Pre-built regex patterns are available:
import { patterns } from '@formkit-gov/core/patterns';
// Available patterns
patterns.ssn; // ###-##-####
patterns.phone; // (###) ###-#### or ###-###-####
patterns.zipCode; // #####
patterns.zipCodePlus4; // ##### or #####-####
patterns.email; // Standard email
patterns.currency; // #,###.##Next Steps
- See @formkit-gov/core for complete API reference
- Explore Patterns for form implementations
- View Components for React integration
Last updated on