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), including the widespread "+31 (0)6 12345678" letterhead rendering (a common-but-nonstandard practice — ITU-T E.123 advises against the parenthesised trunk digit in international notation, but it is ubiquitous on Dutch letterheads, so it is matched for detection purposes). Numbers beginning 08 (0800 free-of-charge service numbers, 088 non-geographic business lines) and 09 (0900/0906/0909 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. Note this also excludes the 085 and 091 location-independent subscriber ranges (VoIP numbers ACM makes available to individuals as well as businesses): a personal 085/091 VoIP line is therefore a known false negative, accepted because the 085/088/091 block is predominantly organizational in practice and cannot be split from it structurally.

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.-]?(?:\(0\)[\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 (+8 more)

Proximity: 300 characters

Should match

Should not match

Known false positives

References