PhoneLookup / Regex builder
Phone number regex builder Choose a country and the line types you accept. The pattern is the numbering plan's, anchored; the snippet matches the national significant number (digits only, no country code, no trunk prefix), so normalise first, as the comment says. Everything runs in your browser.
Country Afghanistan (+93) Albania (+355) Algeria (+213) American Samoa (+1) Andorra (+376) Angola (+244) Anguilla (+1) Antigua and Barbuda (+1) Argentina (+54) Armenia (+374) Aruba (+297) Ascension Island (+247) Australia (+61) Austria (+43) Azerbaijan (+994) Bahamas (+1) Bahrain (+973) Bangladesh (+880) Barbados (+1) Belarus (+375) Belgium (+32) Belize (+501) Benin (+229) Bermuda (+1) Bhutan (+975) Bolivia (+591) Bosnia and Herzegovina (+387) Botswana (+267) Brazil (+55) British Indian Ocean Territory (+246) British Virgin Islands (+1) Brunei (+673) Bulgaria (+359) Burkina Faso (+226) Burundi (+257) Cambodia (+855) Cameroon (+237) Canada (+1) Cape Verde (+238) Caribbean Netherlands (+599) Cayman Islands (+1) Central African Republic (+236) Chad (+235) Chile (+56) China (+86) Christmas Island (+61) Cocos (Keeling) Islands (+61) Colombia (+57) Comoros (+269) Cook Islands (+682) Costa Rica (+506) Croatia (+385) Cuba (+53) Curaçao (+599) Cyprus (+357) Czechia (+420) Côte d’Ivoire (+225) Democratic Republic of the Congo (+243) Denmark (+45) Djibouti (+253) Dominica (+1) Dominican Republic (+1) Ecuador (+593) Egypt (+20) El Salvador (+503) Equatorial Guinea (+240) Eritrea (+291) Estonia (+372) Eswatini (+268) Ethiopia (+251) Falkland Islands (+500) Faroe Islands (+298) Fiji (+679) Finland (+358) France (+33) French Guiana (+594) French Polynesia (+689) Gabon (+241) Gambia (+220) Georgia (+995) Germany (+49) Ghana (+233) Gibraltar (+350) Greece (+30) Greenland (+299) Grenada (+1) Guadeloupe (+590) Guam (+1) Guatemala (+502) Guernsey (+44) Guinea (+224) Guinea-Bissau (+245) Guyana (+592) Haiti (+509) Honduras (+504) Hong Kong (+852) Hungary (+36) Iceland (+354) India (+91) Indonesia (+62) Iran (+98) Iraq (+964) Ireland (+353) Isle of Man (+44) Israel (+972) Italy (+39) Jamaica (+1) Japan (+81) Jersey (+44) Jordan (+962) Kazakhstan (+7) Kenya (+254) Kiribati (+686) Kosovo (+383) Kuwait (+965) Kyrgyzstan (+996) Laos (+856) Latvia (+371) Lebanon (+961) Lesotho (+266) Liberia (+231) Libya (+218) Liechtenstein (+423) Lithuania (+370) Luxembourg (+352) Macao (+853) Madagascar (+261) Malawi (+265) Malaysia (+60) Maldives (+960) Mali (+223) Malta (+356) Marshall Islands (+692) Martinique (+596) Mauritania (+222) Mauritius (+230) Mayotte (+262) Mexico (+52) Micronesia (+691) Moldova (+373) Monaco (+377) Mongolia (+976) Montenegro (+382) Montserrat (+1) Morocco (+212) Mozambique (+258) Myanmar (+95) Namibia (+264) Nauru (+674) Nepal (+977) Netherlands (+31) New Caledonia (+687) New Zealand (+64) Nicaragua (+505) Niger (+227) Nigeria (+234) Niue (+683) Norfolk Island (+672) North Korea (+850) North Macedonia (+389) Northern Mariana Islands (+1) Norway (+47) Oman (+968) Pakistan (+92) Palau (+680) Palestine (+970) Panama (+507) Papua New Guinea (+675) Paraguay (+595) Peru (+51) Philippines (+63) Poland (+48) Portugal (+351) Puerto Rico (+1) Qatar (+974) Republic of the Congo (+242) Romania (+40) Russia (+7) Rwanda (+250) Réunion (+262) Saint Barthélemy (+590) Saint Helena (+290) Saint Kitts and Nevis (+1) Saint Lucia (+1) Saint Martin (+590) Saint Pierre and Miquelon (+508) Saint Vincent and the Grenadines (+1) Samoa (+685) San Marino (+378) Saudi Arabia (+966) Senegal (+221) Serbia (+381) Seychelles (+248) Sierra Leone (+232) Singapore (+65) Sint Maarten (+1) Slovakia (+421) Slovenia (+386) Solomon Islands (+677) Somalia (+252) South Africa (+27) South Korea (+82) South Sudan (+211) Spain (+34) Sri Lanka (+94) Sudan (+249) Suriname (+597) Svalbard and Jan Mayen (+47) Sweden (+46) Switzerland (+41) Syria (+963) São Tomé and Príncipe (+239) Taiwan (+886) Tajikistan (+992) Tanzania (+255) Thailand (+66) Timor-Leste (+670) Togo (+228) Tokelau (+690) Tonga (+676) Trinidad and Tobago (+1) Tristan da Cunha (+290) Tunisia (+216) Turkmenistan (+993) Turks and Caicos Islands (+1) Tuvalu (+688) Türkiye (+90) U.S. Virgin Islands (+1) Uganda (+256) Ukraine (+380) United Arab Emirates (+971) United Kingdom (+44) United States (+1) Uruguay (+598) Uzbekistan (+998) Vanuatu (+678) Vatican City (+39) Venezuela (+58) Vietnam (+84) Wallis and Futuna (+681) Western Sahara (+212) Yemen (+967) Zambia (+260) Zimbabwe (+263) Åland Islands (+358) Language JavaScript TypeScript Python Java Go PHP Ruby C# Rust
Line types to accept Mobile Fixed line Toll-free VoIP Premium-rate Personal number Pager UANThe pattern ^(?:7(?:457[0-57-9]|700[01]|911[028])\d{5}|7(?:[1-3]\d\d|4(?:[0-46-9]\d|5[0-689])|5(?:0[0-8]|[13-9]\d|2[0-35-9])|7(?:0[1-9]|[1-7]\d|8[02-9]|9[0-689])|8(?:[014-9]\d|[23][0-8])|9(?:[024-9]\d|1[02-9]|3[0-689]))\d{6}|(?:1(?:1(?:3(?:[0-58]\d\d|73[0-5])|4(?:(?:[0-5]\d|70)\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\d|6(?:[0-4]\d|5[01]))\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\d)\d|1(?:[0-7]\d|8[0-3]))|(?:3(?:0\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\d)\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\d{3})\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\d)|76\d)|6(?:26[06-9]|686))|6(?:06(?:4\d|7[4-79])|295[5-7]|35[34]\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\d{3})$Copy the pattern A validator in your language // n = the national significant number: digits only, without +44 and without the trunk prefix 0
const PATTERN = /^(?:7(?:457[0-57-9]|700[01]|911[028])\d{5}|7(?:[1-3]\d\d|4(?:[0-46-9]\d|5[0-689])|5(?:0[0-8]|[13-9]\d|2[0-35-9])|7(?:0[1-9]|[1-7]\d|8[02-9]|9[0-689])|8(?:[014-9]\d|[23][0-8])|9(?:[024-9]\d|1[02-9]|3[0-689]))\d{6}|(?:1(?:1(?:3(?:[0-58]\d\d|73[0-5])|4(?:(?:[0-5]\d|70)\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\d|6(?:[0-4]\d|5[01]))\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\d)\d|1(?:[0-7]\d|8[0-3]))|(?:3(?:0\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\d)\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\d{3})\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\d)|76\d)|6(?:26[06-9]|686))|6(?:06(?:4\d|7[4-79])|295[5-7]|35[34]\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\d{3})$/;
export const isValidNumber = (n) => PATTERN.test(n);Copy the snippet Test numbers One per line; each is reduced to its national digits before matching. Number National digits Matches 07400 123456 7400123456 Mobile 0121 234 5678 1212345678 Fixed line 0800 123 4567 8001234567 not in the ticked types 056 1234 5678 5612345678 not in the ticked types
Source: National Telephone Numbering Plan (Ofcom) ; National numbering plan: United Kingdom (ITU)
The builder runs in your browser; without scripts it shows the United Kingdom's pattern above.