Validation de texte arabe dans les formulaires : noms, texte libre et pièges

La plupart des guides sur la validation des saisies de formulaires sont conçus pour l'anglais. Leurs exemples supposent l'utilisation de lettres latines, et lorsqu'ils sont appliqués à l'arabe, ils se comportent de manière inattendue. Un modèle que vous pensez être « Lettres arabes uniquement » pourrait laisser passer des chiffres. Une règle acceptant un mot unique pourrait refuser « عبد الله ». Cet article détaille ce qui se passe réellement, afin que vos champs arabes acceptent ce qu'ils doivent accepter.

Ce que vous pourriez vouloir définir

  • « Ce champ doit être en arabe. » (Un nom sur un formulaire officiel, un champ rempli pour un ministère.)
  • « Ce champ doit être en anglais. » (Un nom devant correspondre à un passeport.)
  • « L'un ou l'autre convient. » (Un public mixte.)
  • « Chiffres uniquement. » (Un numéro de téléphone ou une pièce d'identité. Voir l'article dédié aux numéros de téléphone.)

Le format prêt à l'emploi : Lettres arabes uniquement

L'Assistant de modèle propose un format appelé Lettres arabes uniquement. Il est écrit ^[ء-ي ]+$ et accepte les lettres du hamza (ء) au ya (ي) ainsi que les espaces. Nous l'avons testé sur des réponses types :

Réponse Résultat
سارة محمد (deux mots) accepté
عبد الله accepté
ليلى, فاطمة (ya, ta marbuta) accepté
سارة2 (contient un chiffre) refusé
Sara (lettres latines) refusé
مُحَمَّد (avec diacritiques) refusé
پروین (lettres persanes) refusé

Il existe également un format Lettres anglaises uniquement, ^[A-Za-z ]+$, pour les noms devant être écrits en caractères latins.

Deux de ces résultats sont des choix que vous devez faire délibérément :

  • Les diacritiques sont refusés. Si quelqu'un saisit un nom avec des signes de voyelles brèves, la réponse est rejetée. Pour les noms, c'est généralement ce que vous souhaitez, car les gens utilisent rarement ces signes ; pour un champ où ils sont courants, écrivez votre propre modèle.
  • Les lettres persanes et ourdoues sont refusées. La plage couvre uniquement l'alphabet arabe. Si certains de vos répondants écrivent dans ces langues, ce format les bloquera.

Le piège : l'écrire vous-même avec \p{Arabic}

Un raccourci courant est ^\p{Arabic}+$, signifiant « tout ce qui appartient à l'alphabet arabe ». Cela semble correct, mais c'est plus permissif qu'il n'y paraît. Nous l'avons testé :

Réponse Résultat
سارة accepté
سارة محمد (un espace) refusé
مُحَمَّد (diacritiques) accepté
پروین (lettres persanes) accepté
٠٧٩ (chiffres indo-arabes) accepté

Il refuse donc un nom composé de deux mots, car l'espace n'est pas une lettre arabe, et il accepte les chiffres, ce qui est rarement le but recherché par « Lettres arabes uniquement ». Pour un champ de nom, utilisez le format prêt à l'emploi.

Mélange d'arabe et d'anglais

Il n'existe pas de format « l'un ou l'autre » prêt à l'emploi. Si les deux conviennent, écrivez votre propre modèle dans la case, par exemple ^[ء-ي A-Za-z]+$, qui accepte les lettres arabes, les lettres latines et les espaces. Testez-le avec Essayer une valeur, en utilisant les noms réels que vos répondants écriront, avant de publier. Notez qu'il accepte également un mélange au sein d'une même réponse, comme « Sara سارة ».

Faut-il vraiment restreindre les noms ?

Souvent, non. Les noms contiennent des apostrophes, des traits d'union et des lettres d'autres alphabets. Une règle trop stricte rejette des personnes réelles en leur indiquant qu'elles ont mal saisi leur propre nom. Un modèle est utile lorsque le traitement ultérieur dépend de la forme : un registre qui n'accepte que des noms arabes, un certificat imprimé en arabe. Si ce n'est pas le cas, une règle de longueur est plus souple : un minimum de deux caractères empêche la saisie d'une seule lettre, et un maximum permet de limiter la taille du champ.

Les variantes que vous ne pouvez pas valider

L'orthographe arabe comporte des paires qui se ressemblent et sont utilisées de manière interchangeable : ي et ى, ة et ه, les différentes formes d'alef (ا أ إ آ). Un modèle les accepte toutes, car ce sont toutes des lettres ; la validation ne pourra donc pas les unifier. Si vous prévoyez de compter ou de comparer des réponses ultérieurement, par exemple pour savoir combien de personnes ont écrit le nom d'une ville donnée, proposez une liste de choix plutôt qu'un texte libre, afin que tout le monde utilise la même orthographe.

Où la règle est-elle appliquée ?

Le modèle est vérifié sur le lien public, sur la page de saisie intégrée et lors de l'importation d'un fichier CSV. Il n'est pas vérifié dans l'application Collect, car un téléphone hors ligne ne peut pas évaluer les modèles de manière fiable. La réponse d'un collecteur est toujours conservée et, si elle ne correspond pas, elle est marquée pour que vous puissiez la vérifier.

Dans Pulseform

Consultez créer un formulaire et ses règles de champ pour la case de modèle et l'Assistant de modèle, et pour une vue d'ensemble, validation des données de formulaire. Si vous avez seulement besoin du modèle, le générateur de modèles gratuit le rédige pour vous.

Essayez avec vos propres données

Créez une enquête ou un formulaire et voyez les résultats à mesure que les réponses arrivent.

Démarrer votre essai gratuit de 14 jours