Netherlands Phone Number
Detects Dutch national telephone numbers per the ACM-administered numbering plan: 10-digit numbers (leading trunk 0 included) covering geographic numbers (area code first significant digit 1-5 or 7, e.g. 020 Amsterdam, 010 Rotterdam, 070 Den Haag) and mobile numbers (06 prefix), plus the +31 international form (leading 0 dropped). Service numbers beginning 08 (e.g. 088 non-geographic business lines) and 09 (e.g. 0800 free-of-charge and 0900 premium-rate information numbers) are intentionally out of scope — these are organizational/service numbers rather than personal PII, mirroring how uk-phone-number and fr-phone-number scope out their own non-geographic service ranges.
- Type
- regex
- Engine
- universal
- Confidence
- medium
- Confidence justification
- Medium confidence: the leading-digit constraint (01-07 domestic, restricting to geographic area codes and the 06 mobile block) and the fixed 10-digit total length narrow the format, but Dutch numbers carry no checksum and a 10-digit sequence with those leading digits is still a high digit-collision format. Per the phone-family convention (every tier requires positive corroborative evidence; a +CC prefix alone is insufficient gating; there is no 65 rung), both the domestic and +31 international sub-regexes are evidence-gated at every tier: 75 requires generic phone-context evidence and 85 requires country-specific phone keywords with template/noise exclusion. The literal +31 prefix improves precision when present but is not by itself sufficient gating.
- Jurisdictions
- nl
- Regulations
- GDPR
- Frameworks
- ISO 27001, ISO 27701, SOC 2
- Data categories
- pii, contact-information
- Scope
- narrow
- Risk rating
- 5
- Platform compatibility
- Purview: Compatible, GCP DLP: Unsupported, Macie: Unsupported, Zscaler: Compatible, Palo Alto: Unsupported, Netskope: Unsupported
Pattern
(?<!\d)(?:\+31[\s.-]?[1-7][\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d|0[1-7][\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d[\s.-]?\d)(?!\d)
Corroborative evidence keywords
phone, mobile, call, text, contact number, Dutch phone number, telefoonnummer, call me at, cell, telephone, tel, dial, text me, text message, [object Object], WhatsApp, voicemail, phone number, mobile number, landline
Proximity: 300 characters
Should match
Mobiel: 06 12345678— Domestic mobile, 06 prefix, illustrative synthetic value (no official ACM-reserved fictional range was found — verified absent during research), space-separatedTelefoonnummer: 020 1234567— Domestic geographic, Amsterdam area code (020), illustrative synthetic valueBel: 070-1234567— Domestic geographic, Den Haag area code (070), hyphenatedInternational: +31 6 12345678— International +31 form of the mobile number, leading 0 dropped
Should not match
0800 123456— Leading digit 8 is a free-of-charge service number (0800), out of scope for this personal-communications pattern0900-1234567— Leading digit 9 is a premium-rate information number (0900), out of scope06 1234567— Only 7 digits after the 06 mobile prefix, one short of the required 8906123456789— Valid-shaped digit run embedded inside a longer reference number, rejected by digit boundaries
Known false positives
- A 10-digit sequence with a 01-07 leading digit can still coincidentally match invoice numbers, order numbers, or other structured identifiers of the same length and leading-digit distribution. Mitigation: Every tier — for both the domestic and +31 international sub-regexes — requires positive phone-context or country-specific evidence within 300 characters; no zero-evidence tier exists, so a bare digit run without corroborating context never fires at any confidence level.
- No official ACM-reserved fictional or test number range was found for the Netherlands (confirmed by web research, unlike NANP's 555-01XX or Ofcom's drama numbers), so illustrative synthetic values were used instead of an authoritative reserved range. Mitigation: Test values use clearly non-representative sequential digit patterns; deployers should substitute their own tenant's synthetic test data for live validation rather than relying on a non-existent official reserved range.