> 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
