Regex numéro de téléphone belge
Un numéro belge commence par 0 (préfixe de tronc, supprimé avec +32) suivi d'un indicatif de zone d'un chiffre (02 Bruxelles, 03 Anvers, 04 Liège) ou de deux chiffres (010 Wavre, 050 Bruges, 081 Namur) puis de l'abonné : 8 chiffres après le 0 pour un fixe, 9 pour un mobile 04xx. On écrit « 02 234 56 78 », « 02/234.56.78 » ou « 0475 12 34 56 ». La regex fixe de sent.dm écrit « [1-9]{1,2} » : le zéro est exclu, donc 010, 050 ou 090 sont refusés ; celle de validator.js ne couvre que les mobiles ; celle de Drupal accepte 04 suivi de n'importe quoi. Voici un motif qui borne le début de chaque indicatif, comparé à ces tentatives.
/^(?:(?:\+|00)32 ?|0)(?:1(?=[ ./-]?[0-69])(?:[ ./-]?[0-9]){7}|[23](?=[ ./-]?[2-8])(?:[ ./-]?[0-9]){7}|4(?=[ ./-]?[23])(?:[ ./-]?[0-9]){7}|4(?=[ ./-]?[5-9])(?:[ ./-]?[0-9]){8}|5(?:[ ./-]?[0-9]){7}|6(?=[ ./-]?[013-57-9])(?:[ ./-]?[0-9]){7}|7(?=[ ./-]?1)(?:[ ./-]?[0-9]){7}|8(?=[ ./-]?[1-79])(?:[ ./-]?[0-9]){7}|80(?=[ ./-]?[2-8])(?:[ ./-]?[0-9]){6}|800(?=[ ./-]?[1-9])(?:[ ./-]?[0-9]){5}|9(?=[ ./-]?[2-4])(?:[ ./-]?[0-9]){7})$/passe 33/33 cas
Comparatif des patterns existants
Implémentation
const re = new RegExp("^(?:(?:\\+|00)32 ?|0)(?:1(?=[ ./-]?[0-69])(?:[ ./-]?[0-9]){7}|[23](?=[ ./-]?[2-8])(?:[ ./-]?[0-9]){7}|4(?=[ ./-]?[23])(?:[ ./-]?[0-9]){7}|4(?=[ ./-]?[5-9])(?:[ ./-]?[0-9]){8}|5(?:[ ./-]?[0-9]){7}|6(?=[ ./-]?[013-57-9])(?:[ ./-]?[0-9]){7}|7(?=[ ./-]?1)(?:[ ./-]?[0-9]){7}|8(?=[ ./-]?[1-79])(?:[ ./-]?[0-9]){7}|80(?=[ ./-]?[2-8])(?:[ ./-]?[0-9]){6}|800(?=[ ./-]?[1-9])(?:[ ./-]?[0-9]){5}|9(?=[ ./-]?[2-4])(?:[ ./-]?[0-9]){7})$", "");
re.test(input);Limites
- Valide seulement la FORME : ne vérifie pas que le numéro est attribué. Les premiers chiffres (zones 1 à 9, mobiles 045 à 049) suivent libphonenumber ; la liste précise des indicatifs de zone est tenue par l'IBPT, dont la base d'attribution n'a pas été relue ici.
- Après +32 ou 0032, le 0 de tronc ne doit pas être gardé : « +32 02… » est rejeté. Les préfixes mobiles 040 à 044 sont rejetés, car libphonenumber ne les liste pas.
- Les numéros 070 (partagés), 078, 090x (surtaxés) et les services 1xxx ne sont pas acceptés. Le 0800 doit compter 8 chiffres au total.
- Une espace, un point, une barre oblique ou un tiret facultatifs sont acceptés entre deux chiffres quelconques ; les parenthèses et extensions sont rejetées.
Numéros de téléphone d’autres pays
- numéro de téléphone allemand
- numéro de téléphone américain
- numéro de téléphone australien
- numéro de téléphone brésilien
- numéro de téléphone britannique
- numéro de téléphone canadien
- numéro de téléphone chinois
- numéro de téléphone espagnol
- numéro de téléphone français
- numéro de téléphone italien
- numéro de téléphone japonais
- numéro de téléphone mexicain
- numéro de téléphone néerlandais
- numéro de téléphone norvégien
- numéro de téléphone polonais
- numéro de téléphone sud-africain
- numéro de téléphone suédois
- numéro de téléphone suisse
- Tous les numéros de téléphone par pays