0Pricing
React Academy · Lección

Reglas de validación y mensajes de error

Aplique reglas de validación integradas (required, minLength, pattern) y muestre mensajes de error.

Reglas de validación y mensajes de error es una lección gratuita de React Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de React Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de React Academy incluye 4 lecciones en total.

Bienvenida

En esta lección añadirá reglas de validación integradas a los campos de React Hook Form y mostrará mensajes de error claros para el usuario debajo de cada entrada.

Reglas de validación integradas

Pase un objeto de reglas como segundo argumento de register(). Las reglas integradas incluyen: `required`, `minLength`, `maxLength`, `min`, `max`, `pattern` y `validate`.
<input
  {...register('email', {
    required: 'Email is required',
    pattern: {
      value: /^[^@]+@[^@]+\.[^@]+$/,
      message: 'Invalid email address',
    },
  })}
/>

Campos obligatorios

Establezca `required` como una cadena para hacer que el campo sea obligatorio. La cadena se convierte en el mensaje de error. Si lo establece como `true`, se utilizará un mensaje genérico.
register('name', { required: 'Name is required' })
// or
register('name', { required: true })

Restricciones de longitud

Utilice `minLength` y `maxLength` con un objeto `{ value, message }` para establecer límites de caracteres y mensajes de error personalizados.
register('username', {
  minLength: { value: 3, message: 'At least 3 characters' },
  maxLength: { value: 20, message: 'At most 20 characters' },
})

Validación mediante patrones

La regla `pattern` acepta un valor RegExp. Utilícela para validar formatos de correo electrónico, números de teléfono o cualquier patrón de cadena.
register('phone', {
  pattern: {
    value: /^[0-9]{10,11}$/,
    message: 'Enter a valid phone number',
  },
})

Mostrar errores

Lea el objeto `errors` de formState. Cada campo que no supera la validación tiene una entrada con una propiedad `message`. Renderícela condicionalmente debajo de la entrada.
const { register, handleSubmit, formState: { errors } } = useForm();

<input {...register('email', { required: 'Required' })} />
{errors.email && <p className="error">{errors.email.message}</p>}

Validación personalizada con validate

La regla `validate` acepta una función que devuelve `true` si el valor es válido o una cadena de error si no lo es. Utilícela para la lógica de negocio que no se puede expresar con las reglas integradas.
register('age', {
  validate: value =>
    parseInt(value) >= 18 || 'You must be at least 18',
})

Varios validadores personalizados

Pase un objeto de validadores con nombre a `validate` para ejecutar varias comprobaciones personalizadas en el mismo campo.
register('password', {
  validate: {
    hasUpper: v => /[A-Z]/.test(v) || 'Needs uppercase',
    hasDigit: v => /[0-9]/.test(v) || 'Needs a number',
  }
})

Mostrar el número de errores

Cuente el total de errores para habilitar o deshabilitar el botón de envío, o para mostrar un resumen. Utilice Object.keys(errors).length.
const hasErrors = Object.keys(errors).length > 0;
<button type="submit" disabled={hasErrors}>Submit</button>

Aplicar estilos a las entradas con errores

Aplique una clase CSS a las entradas que tengan errores para mostrar un borde rojo. Compruebe errors[fieldName] para aplicar la clase condicionalmente.
<input
  {...register('email', { required: true })}
  className={errors.email ? 'input-error' : ''}
/>

Comprobación rápida

¿Cómo se muestra el mensaje de error de un campo llamado 'email' en React Hook Form?

Resumen

Añada las reglas de validación como segundo argumento de register(): required, minLength, maxLength, pattern, min, max y validate. Lea errors[fieldName].message de formState para mostrar los mensajes.

A continuación

Siguiente lección: **Validación de esquemas con Zod** — integrará @hookform/resolvers y esquemas de Zod para obtener una validación de formularios con seguridad de tipos.

Preguntas frecuentes

¿La lección «Reglas de validación y mensajes de error» es gratis?

Sí — el texto completo de «Reglas de validación y mensajes de error» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de React Academy, actualiza a CoddyKit PRO. El curso de React Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Reglas de validación y mensajes de error»?

Aplique reglas de validación integradas (required, minLength, pattern) y muestre mensajes de error. Practicas React Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar React Academy?

No se requiere experiencia previa. React Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Reglas de validación y mensajes de error»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de React Academy?

Sí. Cada lección de React Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Primeros pasos con React Hook Form
  2. Reglas de validación y mensajes de error
  3. Validación de esquemas con Zod
  4. Campos dinámicos con useFieldArray
← Volver a React Academy