Rexact
Cheatsheet

Regex numéro de téléphone norvégien

La Norvège a un plan fermé à 8 chiffres, sans préfixe de tronc : on compose toujours les 8 chiffres, avec ou sans +47. Un fixe commence par 2, 3, 5, 6 ou 7, un mobile par 4 ou 9, les numéros gratuits par 800 ou 801. On écrit « 22 12 34 56 » (fixe) ou « 400 12 345 » (mobile). La regex mobile de validator.js accepte tout 4x et tout 9x ; celle de sent.dm pour les fixes écrit « [2-3,5-7] » : la virgule est un caractère littéral, donc « ,2123456 » passe ; celle de CakePHP accepte n'importe quels 8 chiffres. Voici un motif qui borne les deux premiers chiffres, comparé à ces tentatives.

/^(?:(?:\+|00)47 ?)?(?:(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-46-9]|7[0-8]|4[0156-8]|9[0-9])(?:[ -]?[0-9]){6}|(?:80[01]|810|82[09]|85[0-5]|880)(?:[ -]?[0-9]){5})$/
passe 34/34 cas

Comparatif des patterns existants

Implémentation

const re = new RegExp("^(?:(?:\\+|00)47 ?)?(?:(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-46-9]|7[0-8]|4[0156-8]|9[0-9])(?:[ -]?[0-9]){6}|(?:80[01]|810|82[09]|85[0-5]|880)(?:[ -]?[0-9]){5})$", "");
re.test(input);

Limites

  • Valide seulement la FORME : ne vérifie pas que le numéro est attribué. Seuls les deux premiers chiffres sont contrôlés (liste de libphonenumber), pas la tranche exacte attribuée à un opérateur par Nkom.
  • Il n'y a pas de préfixe de tronc : les 8 chiffres se composent toujours, donc « +47 0 22… » est rejeté. Les numéros à 5 chiffres (02000, 0[235-9]xxx) et 04x (42, 43, 44 non alloués) sont rejetés.
  • Les préfixes mobiles 40, 41, 45 à 48 et tous les 9x sont acceptés ; 42, 43 et 44 sont rejetés comme dans libphonenumber. Le plan complet de Nkom n'a pas été relu.
  • Une espace ou un tiret facultatifs sont acceptés entre deux chiffres quelconques après les deux premiers (« 22 1 2 3 4 5 6 » passe) ; parenthèses, points et extensions sont rejetés.

Numéros de téléphone d’autres pays

Pages liées