Passer au contenu principal

ArtinTech Solution

Validating Bangladeshi Mobile Numbers in a Checkout Form

Un champ de téléphone sans validation paraît inoffensif jusqu’à ce que le coursier ne parvienne pas à joindre le client qui attend son colis. Dans un formulaire de commande manuelle en particulier, où quelqu’un recopie un numéro entendu au téléphone ou lu sur une capture de discussion, un simple champ texte laisse passer à chaque fois fautes de frappe, longueurs erronées et préfixes invalides.

Le vrai format à valider

Les numéros de mobile bangladais suivent un format précis et bien défini : onze chiffres, commençant par 01, suivis d’un chiffre de 3 à 9 qui identifie l’opérateur, puis de huit autres chiffres, ce qui s’exprime par l’expression régulière ^01[3-9]d{8}$. Tout ce qui sort de ce format n’est pas un numéro de mobile bangladais valide, point.

Vérifié deux fois, pour deux raisons différentes

Nous validons ce format à deux endroits, chacun répondant à un problème différent :

  • Côté navigateur, instantanément. Dès que la saisie est terminée, un message d’erreur s’affiche près du champ si le numéro ne correspond pas, et disparaît dès qu’il est corrigé : l’erreur est repérée avant même l’envoi du formulaire.
  • Côté serveur, à l’envoi. La même vérification est refaite dans le gestionnaire de création de commande, qui rejette la demande si la première a été contournée, que ce soit avec JavaScript désactivé ou par une requête directe. La validation côté navigateur est une politesse ; celle côté serveur est la véritable garantie.

Nous avons aussi ajouté maxlength="11" et inputmode="numeric" sur le champ lui-même, pour que le téléphone affiche le clavier numérique par défaut et ne puisse physiquement pas accepter un douzième chiffre : de petits détails qui font de la bonne saisie le chemin le plus simple, plutôt qu’une erreur à rattraper après coup.

Points clés

  • Une validation qui n’existe que dans le navigateur n’est pas une validation, c’est une commodité. C’est la vérification côté serveur qui protège réellement les données.
  • Un format de validation doit correspondre au format réel qu’il représente, pas à une règle générique du type « ressemble à un numéro de téléphone ».
  • Des attributs de saisie comme inputmode et maxlength évitent des catégories entières d’erreurs avant même que la logique de validation n’ait à s’exécuter.

À lire aussi : sélectionner automatiquement la livraison gratuite à partir d’un montant, pourquoi les e-mails de commande n’arrivaient pas sur Gmail.

Vous rencontrez une limite similaire dans votre administration WooCommerce ou WordPress ? Parlons-en : ArtinTech Solution conçoit exactement ce type d’outils sur mesure pour les boutiques.

Share this article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *