Analyseur et formateur de numéro de téléphone

Analysez des numéros de téléphone internationaux, validez-les et reformatez-les aux formats E.164, international ou national.

Analysez des numéros de téléphone internationaux, validez-les et reformatez-les aux formats E.164, international ou national. Analysez des numéros de téléphone internationaux, validez-les et reformatez-les aux formats E.164, international ou national.

Contexte

Comment sont structurés les numéros de téléphone

Un numéro de téléphone international se compose de trois parties logiques : un indicatif (1 pour l'Amérique du Nord, 44 pour le Royaume-Uni, 86 pour la Chine, 81 pour le Japon, et ainsi de suite), un numéro national significatif (code régional plus numéro d'abonné), et un poste éventuel. La recommandation E.164 définit la représentation canonique : un + initial, l'indicatif du pays, puis le numéro national sans séparateur -- par exemple +14155552671. Lorsque les utilisateurs saisissent des numéros en forme libre, ils peuvent inclure des espaces, des tirets, des parenthèses ou des zéros initiaux qui n'ont de sens qu'à l'intérieur d'un pays. Un bon analyseur normalise tout cela en champs structurés.

Pourquoi l'analyse est plus difficile qu'il n'y paraît

Les pays sont en désaccord sur presque tout : la longueur des numéros nationaux, l' usage de préfixes interurbains (la Chine supprime un 0 initial lors d'un appel depuis l'étranger, le Royaume-Uni fait de même avec son 0 interurbain), les préfixes mobiles ou fixes, et les codes courts spéciaux. 4444 est un numéro national valide dans certains pays et invalide dans d'autres. Les plans de numérotation sont aussi mouvants -- le Brésil a ajouté un chiffre à tous les numéros mobiles en 2016, et le régulateur de chaque pays publie des changements. C'est pourquoi les analyseurs sérieux embarquent une base de métadonnées complète au lieu d'expressions régulières codées en dur. La bibliothèque qui alimente cette page intègre les métadonnées officielles de Google pour chaque pays et territoire, si bien qu'elle sait, par exemple, que les numéros mobiles chinois comptent 11 chiffres et commencent par 1.

Utiliser l'analyseur

Saisissez un numéro avec ou sans le + et l'indicatif du pays. Si vous omettez l' indicatif du pays, choisissez un pays par défaut dans le menu déroulant pour que l'analyseur puisse résoudre le format national. L'outil indique la forme E.164, le formatage international avec espaces, le formatage national, le pays détecté, l'indicatif, le numéro national, si le numéro est valide et possible, le type de numéro (mobile, fixe, gratuit, etc.), et l' opérateur lorsque les métadonnées peuvent le déterminer. Un numéro peut être « possible » (la bonne longueur et la bonne forme de préfixe) sans être « valide » (attribué et correctement structuré) -- les deux vérifications sont affichées.

Notes pratiques

La détection du pays à partir d'un numéro brut est heuristique : +1 555 2671 signifie sans ambiguïté l'Amérique du Nord, mais les numéros courts peuvent correspondre à plusieurs pays. Incluez toujours l'indicatif du pays pour un usage machine à machine, et stockez les numéros au format E.164 dans votre base de données. Lors de la validation de la saisie utilisateur, privilégiez les vérifications « possibles » pour un retour UX immédiat et réservez les vérifications complètes « valides » pour la soumission. Cet outil s'exécute entièrement dans votre navigateur sur les données intégrées de libphonenumber-js (MIT) -- rien de ce que vous tapez n'est transmis.

Construit avec la bibliothèque libphonenumber-js sous licence MIT intégrée dans public/assets. L'analyse est effectuée localement dans votre navigateur.

Foire aux questions

Pourquoi obtient-on « possible mais pas valide » ?
Possible signifie que le numéro correspond à la longueur générale et à la forme de préfixe du pays. Valide signifie que c'est un numéro réellement attribué selon les métadonnées officielles. Beaucoup de numéros de test ou de plages non attribuées sont possibles mais pas valides.
Qu'est-ce que E.164 et pourquoi le stocker ?
E.164 est la norme de l'UIT pour les numéros de téléphone : + puis l'indicatif du pays puis le numéro national, 15 chiffres maximum. Stocker cette forme canonique unique simplifie la déduplication et la numérotation internationale, car elle est non ambiguë dans tous les pays.
Puis-je valider des numéros sans indicatif de pays ?
Pas de façon fiable. Sans indicatif de pays, l'analyseur doit deviner, et les numéros courts peuvent être valides dans de nombreux pays. Fournissez un pays par défaut (ou exigez l'indicatif) dès que la saisie n'est pas explicitement internationale.
Comment le type de numéro est-il déterminé ?
Les métadonnées intégrées classent les plages par préfixe : mobile, fixe, gratuit, premium, VoIP, coût partagé, et plus. Le type n'est affiché que lorsque les métadonnées en attribuent un ; sinon un tiret apparaît.
Ma saisie est-elle envoyée quelque part ?
Non. L'analyse, la validation et le formatage se font entièrement dans votre navigateur grâce au paquet intégré libphonenumber-js (MIT). La page fonctionne pleinement hors ligne après son chargement.
Pourquoi le même numéro s'affiche-t-il différemment selon les pays ?
Le formatage international regroupe les chiffres selon les conventions propres au pays (par exemple les numéros français se groupent par paires, les numéros américains utilisent 3-3-4). E.164 reste identique quelle que soit la situation ; seule la forme d'affichage change.