0Pricing
HTML Academy · Leçon

`required`, `pattern`, `min`, `max` et `maxlength`

Ajoutez des contraintes de validation intégrées aux champs de formulaire.

`required`, `pattern`, `min`, `max` et `maxlength` est une leçon HTML Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage HTML Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours HTML Academy comprend 4 leçons au total.

Validation des formulaires HTML5

HTML5 a ajouté la validation intégrée des formulaires — aucun JavaScript requis :

  • Les navigateurs vérifient les contraintes avant l’envoi
  • Les messages d’erreur natifs s’affichent automatiquement
  • Fonctionne avec les pseudo-classes CSS :valid / :invalid

required

L’attribut required empêche l’envoi si le champ est vide :

<label for="email">Email (required)</label>
<input type="email" id="email" name="email" required>
<!-- Empty on submit → browser shows "Please fill in this field" -->
<!-- Also: field is :invalid until filled -->

pattern

L’attribut pattern valide le texte à l’aide d’une expression régulière :

<label for="username">Username (letters and numbers only)</label>
<input
  type="text"
  id="username"
  name="username"
  pattern="[a-zA-Z0-9]{3,20}"
  title="3-20 letters and numbers"
>
<!-- pattern anchored at both ends automatically -->
<!-- title provides the error message hint -->

Exemples courants de pattern

Expressions régulières utiles pour les champs de formulaire :

<!-- Phone: digits, spaces, hyphens -->
<input type="tel" pattern="[0-9 ()+-]{7,20}">

<!-- Postal code: US zip code -->
<input type="text" pattern="[0-9]{5}(-[0-9]{4})?">

<!-- Password: min 8 chars, one uppercase, one digit -->
<input type="password" pattern="(?=.*[A-Z])(?=.*[0-9]).{8,}">

<!-- Twitter handle: -->
<input type="text" pattern="@?[A-Za-z0-9_]{1,15}">

min et max

Limitez les saisies numériques, de date et d’intervalle :

<!-- Number range -->
<input type="number" name="qty" min="1" max="100">

<!-- Date range -->
<input type="date" name="checkin" min="2025-01-01" max="2025-12-31">

<!-- Range slider -->
<input type="range" name="volume" min="0" max="100" step="5">

<!-- Time -->
<input type="time" name="meeting" min="09:00" max="17:00">

maxlength et minlength

Contrôlez la longueur d’une saisie textuelle :

<input type="text" name="username" minlength="3" maxlength="20">
<!-- minlength: minimum number of characters required -->
<!-- maxlength: maximum characters allowed (browser enforces hard stop) -->

<textarea name="bio" minlength="50" maxlength="500"></textarea>
<!-- Same attributes work on textarea -->

step

L’attribut step définit les incréments valides pour les saisies de nombres et d’intervalles :

<input type="number" name="price" min="0" step="0.01">
<!-- Accepts decimal prices: 0.00, 0.01, 4.99, etc. -->

<input type="number" name="qty" min="0" step="5">
<!-- Only multiples of 5: 0, 5, 10, 15... -->

<input type="range" min="0" max="100" step="10">
<!-- Snaps to: 0, 10, 20, ..., 100 -->

CSS :valid et :invalid

Mettez en forme les champs selon leur état de validation :

input:valid {
  border-color: #22c55e;   /* green when valid */
}

input:invalid {
  border-color: #ef4444;   /* red when invalid */
}

/* Avoid showing :invalid on page load (before user interaction): */
input:not(:placeholder-shown):invalid {
  border-color: #ef4444;
}
/* Only show invalid style after user has typed something */

title pour les messages d’erreur personnalisés

L’attribut title fournit une indication dans l’erreur de validation du navigateur :

<input
  type="text"
  pattern="[A-Za-z]{2,3}"
  title="Enter a 2 or 3 letter country code (e.g. US, GB, DEU)"
  name="country-code"
>
<!-- Browser shows the title text alongside the default error message -->

Combiner les contraintes

Plusieurs attributs de validation fonctionnent ensemble :

<input
  type="text"
  name="username"
  required
  minlength="3"
  maxlength="20"
  pattern="[a-z][a-z0-9_]*"
  title="Lowercase letters, numbers, underscores. Must start with a letter."
>
<!-- All constraints must pass for the field to be :valid -->

novalidate et moment de la validation

La validation se déclenche par défaut lors de l’envoi. Pour valider à chaque événement input :

<input type="email" id="email">

<script>
const input = document.getElementById('email');
input.addEventListener('blur', () => {
  // Check validity on blur (when user leaves field):
  if (!input.validity.valid) {
    input.reportValidity();
  }
});
</script>

Résumé des pseudo-classes de validation

Pseudo-classes CSS de validation des formulaires :

  • :valid — la validation des contraintes a réussi
  • :invalid — une ou plusieurs contraintes ont échoué
  • :required — possède l’attribut required
  • :optional — ne possède pas l’attribut required
  • :in-range — valeur comprise entre min et max
  • :out-of-range — valeur située en dehors de min et max

Vérification rapide

Quel attribut limite le nombre maximal de caractères dans une saisie textuelle ?

Récapitulatif : attributs de validation

Points essentiels de la validation HTML5 :

  • required — le champ doit être rempli
  • pattern — valide selon une expression régulière
  • min / max — limites de valeur pour les nombres, les dates et les intervalles
  • maxlength / minlength — limites du nombre de caractères
  • step — incréments valides
  • CSS :valid / :invalid pour la mise en forme

Questions Fréquemment Posées

La leçon « `required`, `pattern`, `min`, `max` et `maxlength` » est-elle gratuite ?

Oui — le texte complet de « `required`, `pattern`, `min`, `max` et `maxlength` » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours HTML Academy, passe à CoddyKit PRO. Le cours HTML Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « `required`, `pattern`, `min`, `max` et `maxlength` » ?

Ajoutez des contraintes de validation intégrées aux champs de formulaire. Tu pratiques HTML Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer HTML Academy ?

Aucune expérience préalable n'est requise. HTML Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « `required`, `pattern`, `min`, `max` et `maxlength` » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon HTML Academy ?

Oui. Chaque leçon HTML Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. `required`, `pattern`, `min`, `max` et `maxlength`
  2. L’attribut `novalidate`
  3. Notions fondamentales de l’API de validation des contraintes
  4. Validation HTML5 ou JavaScript : compromis
← Retour à HTML Academy