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 & 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 & 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) Congo - Brazzaville (+242) Congo - Kinshasa (+243) Cook Islands (+682) Costa Rica (+506) Croatia (+385) Cuba (+53) Curaçao (+599) Cyprus (+357) Czechia (+420) Côte d’Ivoire (+225) 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 SAR China (+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 SAR China (+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 (Burma) (+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) Palestinian Territories (+970) Panama (+507) Papua New Guinea (+675) Paraguay (+595) Peru (+51) Philippines (+63) Poland (+48) Portugal (+351) Puerto Rico (+1) Qatar (+974) Romania (+40) Russia (+7) Rwanda (+250) Réunion (+262) 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) St. Barthélemy (+590) St. Helena (+290) St. Kitts & Nevis (+1) St. Lucia (+1) St. Martin (+590) St. Pierre & Miquelon (+508) St. Vincent & Grenadines (+1) Sudan (+249) Suriname (+597) Svalbard & Jan Mayen (+47) Sweden (+46) Switzerland (+41) Syria (+963) São Tomé & Príncipe (+239) Taiwan (+886) Tajikistan (+992) Tanzania (+255) Thailand (+66) Timor-Leste (+670) Togo (+228) Tokelau (+690) Tonga (+676) Trinidad & Tobago (+1) Tristan da Cunha (+290) Tunisia (+216) Turkmenistan (+993) Turks & 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 & 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 plans, ITU-T E.164 (ITU)
The builder runs in your browser; without scripts it shows the United Kingdom's pattern above.