Regex Dutch phone number
A Dutch number has 10 digits including the trunk 0: a 2- or 3-digit netnummer (010 Rotterdam, 070 The Hague, 0222 Texel) followed by the subscriber part for a landline, or 06 then 8 digits for a mobile. With +31, the 0 disappears. The real attempts I read go wrong in different ways: sent.dm's landline regex only requires 9 digits in total (so '012345678' passes and a real 10-digit landline fails), its mobile regex accepts a comma ('06,1234567'), jquery-validation's accepts 060, 066, 08 and 09, and validator.js's covers only mobiles. Here's a pattern separating landlines, mobiles, 085/088 and 0800/090x numbers, compared against those attempts.
/^(?:(?:\+|00)31 ?|0)(?:[1-57](?:[ -]?[0-9]){8}|6(?=[ -]?[1-58])(?:[ -]?[0-9]){8}|8(?=[ -]?[4578])(?:[ -]?[0-9]){8}|800(?:[ -]?[0-9]){4,7}|90[069](?:[ -]?[0-9]){4,7})$/passes 36/36 cases
Comparison of existing patterns
Implementation
const re = new RegExp("^(?:(?:\\+|00)31 ?|0)(?:[1-57](?:[ -]?[0-9]){8}|6(?=[ -]?[1-58])(?:[ -]?[0-9]){8}|8(?=[ -]?[4578])(?:[ -]?[0-9]){8}|800(?:[ -]?[0-9]){4,7}|90[069](?:[ -]?[0-9]){4,7})$", "");
re.test(input);Limits
- Valide seulement la FORME : ne vérifie pas que le numéro est attribué ni que le netnummer existe : tout 0 suivi de 1 à 5 ou de 7 passe, la liste des netnummers (141 régions) étant tenue par le ministère et l'ACM.
- Après +31 ou 0031, le 0 de tronc ne doit pas être gardé : « +31 06… » est rejeté, de même que la forme « +31 (0)6… » encore courante aux Pays-Bas. Retirez le « (0) » avant validation.
- Les longueurs et les premiers chiffres (mobile 061 à 065 et 068, fixe 1 à 5 et 7, 08x, 090x) viennent des métadonnées de libphonenumber, pas de la page de l'ACM, qui ne les donne pas. Les 066 (pagers), 067, 069, 091 et 097 sont rejetés.
- Une espace ou un tiret facultatifs sont acceptés entre deux chiffres quelconques ; les parenthèses, points et extensions sont rejetés.
Phone numbers for other countries
- Australian phone number
- Belgian phone number
- Brazilian phone number
- Canadian phone number
- Chinese phone number
- French phone number
- German phone number
- Italian phone number
- Japanese phone number
- Mexican phone number
- Norwegian phone number
- Polish phone number
- South African phone number
- Spanish phone number
- Swedish phone number
- Swiss phone number
- UK phone number
- US phone number
- All phone numbers by country