Valider des numéros de téléphone dans un formulaire sans regex

Les numéros de téléphone sont les champs qui posent le plus souvent problème. Un chiffre manquant, une lettre saisie par erreur, un numéro collé avec des espaces ou un indicatif international écrit de trois manières différentes. Si votre liste sert à envoyer des messages ou à rappeler des personnes, chaque numéro invalide représente un contact injoignable, et vous ne vous en rendez compte qu'au moment où l'envoi échoue.

La solution standard consiste à utiliser un modèle, aussi appelé expression régulière ou regex, qui définit précisément à quoi ressemble un numéro valide. Le problème est que peu de créateurs de formulaires savent en écrire. Cet article explique comment obtenir un modèle correct sans avoir à l'écrire, et ce qu'il accepte ou refuse, afin que vous puissiez décider s'il convient à votre formulaire.

Décidez de ce que vous acceptez

Trois questions permettent de trancher la plupart des cas :

  1. S'agit-il d'un numéro mobile national ou d'un numéro international ? Un numéro mobile a un début et une longueur connus dans chaque pays. Un numéro international est plus variable.
  2. Avez-vous besoin de l'indicatif pays ? Si les réponses proviennent d'un seul pays, un format national est plus simple à saisir pour les utilisateurs.
  3. Les espaces et les tirets sont-ils autorisés ? Pour les formats prêts à l'emploi ci-dessous, la réponse est non : seuls les chiffres sont acceptés. Précisez-le dans le texte d'aide de la question pour que les utilisateurs soient informés.

Les formats prêts à l'emploi

À côté de la zone de modèle d'un champ, l'Assistant de modèle propose des formats adaptés :

  • Numéro mobile. Deux réglages : par quoi il commence et le nombre total de chiffres. Si vous choisissez de commencer par 07 avec dix chiffres au total, l'assistant écrit ^07[0-9]{8}$ pour vous : 07 suivi exactement de huit autres chiffres.
  • Numéro de téléphone international. Deux réglages : le nombre minimum et maximum de chiffres (8 et 15 par défaut) et un + optionnel au début. Le modèle écrit est ^\+?[0-9]{8,15}$.
  • Numéro à longueur fixe, lorsque vous avez simplement besoin d'un nombre avec une longueur définie, et Chiffres uniquement, lorsque seuls les chiffres importent.

Choisissez une option, ajustez les réglages et appuyez sur Utiliser ceci. Le modèle et un message d'erreur sont automatiquement remplis pour vous.

Testez avant de publier

Dans la même fenêtre, Essayer une valeur vous permet de saisir une réponse et de voir quels formats l'acceptent. Testez les cas réels :

Ce que vous saisissez Mobile commençant par 07, 10 chiffres
0791234567 accepté
079123456 (un chiffre en moins) refusé
0791234567abc (lettres à la fin) refusé
079 123 4567 (avec espaces) refusé

Le modèle doit correspondre à la totalité de la réponse, c'est pourquoi la troisième ligne échoue : un numéro suivi de lettres n'est pas un numéro valide, même s'il commence correctement.

Trois points de vigilance

Chiffres saisis en caractères arabes. Les formats prêts à l'emploi acceptent les chiffres de 0 à 9. Un numéro saisi avec des chiffres indo-arabes (٠٧٩١٢٣٤٥٦٧) sera refusé, même si un humain le lirait comme le même numéro. Cela dépend du clavier et des paramètres du téléphone, mais si vos répondants risquent d'utiliser ce format, indiquez dans le texte d'aide : "écrivez le numéro avec les chiffres de 0 à 9".

Espaces et tirets. 079 123 4567 est également refusé. Demandez aux utilisateurs de saisir le numéro sans espaces ou, si vous préférez être flexible, écrivez votre propre modèle dans la zone prévue.

Règles nationales. Les formats sont génériques : vous choisissez les chiffres de début et la longueur. Pulseform ne fournit pas de liste des plans de numérotation nationaux. Vérifiez donc le début et la longueur corrects pour votre pays avant de les configurer, par exemple auprès de l'autorité de régulation des télécoms ou d'un opérateur. Le modèle n'a alors besoin d'être aussi strict que la règle en vigueur.

Où la validation est appliquée

Le modèle est vérifié sur le lien public, sur la page de saisie dans l'application et lors de l'importation d'un fichier CSV (une ligne contenant un numéro invalide est ignorée et signalée). Il n'est pas vérifié dans l'application Collect, utilisée par les équipes de terrain sans connexion, 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 le numéro ne correspond pas, il est marqué afin que vous puissiez filtrer ces enregistrements et rappeler pour les corriger.

Utiliser le modèle ailleurs

Les modèles ci-dessus sont écrits dans une syntaxe d'expression régulière standard. Vous pouvez donc en copier un dans n'importe quel outil acceptant les expressions régulières. Testez-le d'abord avec les mêmes valeurs, car les outils peuvent varier légèrement. Si vous souhaitez uniquement le modèle, notre générateur de modèles gratuit l'écrit pour vous sans compte.

Dans Pulseform

Consultez créer un formulaire et ses règles de champ pour la zone de modèle et l'assistant, et réponses qui ne correspondent pas au modèle pour les enregistrements provenant du terrain. Pour une vue d'ensemble, consultez validation des données de formulaire.

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