> For the complete documentation index, see [llms.txt](https://docs.ngsurvey.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ngsurvey.com/fr/projects/import-export/xlsform/feuille-de-sondage/contrainte.md).

# Contrainte

La colonne constraint est utilisée pour valider la saisie utilisateur. Elle empêche l'utilisateur de continuer tant que la réponse ne satisfait pas une condition que vous définissez.

Si la réponse ne satisfait pas la contrainte, un message défini dans `constraint_message` est affiché à l'utilisateur.

## 📝 Comment fonctionnent les contraintes

La valeur de la question est représentée par un point (`.`), ce qui signifie « la réponse courante ». Vous construisez une expression logique en utilisant cette valeur.

Les contraintes sont couramment utilisées pour :

* Définir des plages numériques (par ex., l'âge doit être entre 0 et 120)
* Exiger des formats correspondants (par ex., codes postaux, emails)
* Appliquer des dépendances (par ex., date de fin après date de début)

| type    | nom    | label         | constraint                         | constraint\_message                             |
| ------- | ------ | ------------- | ---------------------------------- | ----------------------------------------------- |
| integer | age    | Votre âge     | . >= 18 and . <= 99                | L'âge doit être compris entre 18 et 99          |
| text    | zip    | Code postal   | regex(., '^\d{5}$')                | Saisissez un code postal à 5 chiffres           |
| text    | e-mail | Adresse email | regex(., '^\[^@]+@\[^@]+.\[^@]+$') | Saisissez un email valide                       |
| date    | end    | Date de fin   | . >= ${start}                      | La date de fin doit être après la date de début |

## ☑️ Utilisation du point (.) dans constraint

Le point `.` représente la valeur saisie par l'utilisateur pour la question courante. Utilisez-le dans les fonctions et les expressions :

* `. >= 0` — valide si la valeur est 0 ou plus
* `regex(., '^\d{5}$')` — valide si elle correspond au motif

## 🔠 Références de variables

Vous pouvez utiliser `${question_name}` pour référencer les réponses d'autres questions du formulaire. Assurez-vous que les questions référencées apparaissent plus tôt dans le formulaire.

Exemple :

* `. > ${min_age}` — garantit que la saisie courante est supérieure à une valeur saisie précédemment

## 🔢 Opérateurs et fonctions pour les contraintes

Comme pour la pertinence, vous pouvez utiliser :

\=, !=, >, <, >=, <= and, or, not()

| Fonction        | Description                           | Exemple                                         |
| --------------- | ------------------------------------- | ----------------------------------------------- |
| regex()         | Valide le format d'une saisie texte   | `regex(., '^\d{5}$')` pour les codes postaux US |
| string-length() | Vérifie le nombre de caractères       | `string-length(.) <= 50`                        |
| selected()      | Vérifie si un choix a été sélectionné | `selected(${choices}, 'option1')`               |
| today()         | Récupère la date actuelle             | `. <= today()`                                  |
| now()           | Récupère la date et l'heure actuelles | `. <= now()`                                    |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.ngsurvey.com/fr/projects/import-export/xlsform/feuille-de-sondage/contrainte.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
