UNPKG

test-numbers-generator

Version:

Generate and validate European test phone numbers (mobile and landline) in safe, non-existent ranges.

49 lines (44 loc) 2.96 kB
// Validator functions for test phone numbers import { SupportedCountry } from './mobileNumberGenerators'; export const isTestMobileNumber: Record<SupportedCountry, (number: string) => boolean> = { Netherlands: (number: string) => /^0031 6 \d{8}$/.test(number), Germany: (number: string) => /^0049 01[567] \d{7}$/.test(number), Belgium: (number: string) => /^0032 4[789] \d{7}$/.test(number), // 47/48/49 zonder nationale 0 France: (number: string) => /^0033 [67] \d{8}$/.test(number), UnitedKingdom: (number: string) => /^0044 7 \d{9}$/.test(number), Spain: (number: string) => /^0034 [67]\d{8}$/.test(number), Italy: (number: string) => /^0039 3\d{2} \d{7}$/.test(number), Austria: (number: string) => /^0043 (664|676|699) \d{7}$/.test(number), // zonder nationale 0 Switzerland: (number: string) => /^0041 7[56789] \d{6}$/.test(number), // 75/76/77/78/79 zonder nationale 0 Sweden: (number: string) => /^0046 7 \d{8}$/.test(number), Norway: (number: string) => /^0047 [49]\d{7}$/.test(number), Denmark: (number: string) => /^0045 (20|21|22|23|24|25|26|27|28|29|30|31)\d{6}$/.test(number), // beperkt tot 20-31 Finland: (number: string) => /^00358 (4[0-9]|50|457|59) \d{6}$/.test(number), // 40-49/50/457/59 zonder nationale 0 Portugal: (number: string) => /^00351 9[1236] \d{7}$/.test(number), Ireland: (number: string) => /^00353 8[35679] \d{6}$/.test(number), // 83/85/86/87/89 zonder nationale 0 Turkey: (number: string) => /^0090 53[1-9] \d{6}$/.test(number), // 531-539 zonder nationale 0 Morocco: (number: string) => /^00212 [67] \d{8}$/.test(number), // 6/7 zonder nationale 0 }; export const isTestLandlineNumber: Record<SupportedCountry, (number: string) => boolean> = { Netherlands: (number: string) => /^010 99\d{6}$/.test(number), Germany: (number: string) => /^030 99\d{5}$/.test(number), Belgium: (number: string) => /^02 99\d{6}$/.test(number), France: (number: string) => /^01 99\d{6}$/.test(number), UnitedKingdom: (number: string) => /^020 3999\d{4}$/.test(number), Spain: (number: string) => /^91 99\d{5}$/.test(number), Italy: (number: string) => /^06 99\d{6}$/.test(number), Austria: (number: string) => /^01 99\d{6}$/.test(number), Switzerland: (number: string) => /^044 99\d{6}$/.test(number), Sweden: (number: string) => /^08 99\d{6}$/.test(number), Norway: (number: string) => /^21 99\d{7}$/.test(number), Denmark: (number: string) => /^33 99\d{4}$/.test(number), Finland: (number: string) => /^09 99\d{6}$/.test(number), Portugal: (number: string) => /^21 99\d{6}$/.test(number), Ireland: (number: string) => /^01 99\d{6}$/.test(number), Turkey: (number: string) => /^212 99\d{6}$/.test(number), Morocco: (number: string) => /^0522 99\d{4}$/.test(number), }; export function isTestPhoneNumber(number: string): boolean { return Object.values(isTestMobileNumber).some(fn => fn(number)) || Object.values(isTestLandlineNumber).some(fn => fn(number)); }