2025-11-25 10:50:27 +01:00

241 lines
13 KiB
TypeScript

// Country codes for phone prefixes
export const COUNTRY_CODES = [
{ code: "+233", flag: "🇬🇭", country: "Ghana" },
{ code: "+672", flag: "🇳🇫", country: "Norfolk Island" },
{ code: "+226", flag: "🇧🇫", country: "Burkina Faso" },
{ code: "+591", flag: "🇧🇴", country: "Bolivia" },
{ code: "+33", flag: "🇫🇷", country: "France" },
{ code: "+1-876", flag: "🇯🇲", country: "Jamaica" },
{ code: "+249", flag: "🇸🇩", country: "Sudan" },
{
code: "+243",
flag: "🇨🇩",
country: "Congo, Democratic Republic Of (Was Zaire)",
},
{ code: "+679", flag: "🇫🇯", country: "Fiji" },
{ code: "+44", flag: "🇮🇲", country: "Isle Of Man" },
{ code: "+382", flag: "🇲🇪", country: "Montenegro" },
{ code: "+353", flag: "🇮🇪", country: "Ireland" },
{ code: "+237", flag: "🇨🇲", country: "Cameroon" },
{ code: "+592", flag: "🇬🇾", country: "Guyana" },
{ code: "+234", flag: "🇳🇬", country: "Nigeria" },
{ code: "+1-868", flag: "🇹🇹", country: "Trinidad And Tobago" },
{ code: "+45", flag: "🇩🇰", country: "Denmark" },
{ code: "+852", flag: "🇭🇰", country: "Hong Kong" },
{ code: "+223", flag: "🇲🇱", country: "Mali" },
{ code: "+239", flag: "🇸🇹", country: "Sao Tome And Principe" },
{ code: "+690", flag: "🇹🇰", country: "Tokelau" },
{ code: "+590", flag: "🇬🇵", country: "Guadeloupe" },
{ code: "+66", flag: "🇹🇭", country: "Thailand" },
{ code: "+504", flag: "🇭🇳", country: "Honduras" },
{ code: "+27", flag: "🇿🇦", country: "South Africa" },
{ code: "+358", flag: "🇫🇮", country: "Finland" },
{ code: "+1-264", flag: "🇦🇮", country: "Anguilla" },
{ code: "+262", flag: "🇷🇪", country: "Reunion" },
{ code: "+992", flag: "🇹🇯", country: "Tajikistan" },
{ code: "+971", flag: "🇦🇪", country: "United Arab Emirates" },
{ code: "+212", flag: "🇪🇭", country: "Western Sahara" },
{ code: "+692", flag: "🇲🇭", country: "Marshall Islands" },
{ code: "+674", flag: "🇳🇷", country: "Nauru" },
{ code: "+229", flag: "🇧🇯", country: "Benin" },
{ code: "+55", flag: "🇧🇷", country: "Brazil" },
{ code: "+299", flag: "🇬🇱", country: "Greenland" },
{ code: "+61", flag: "🇭🇲", country: "Heard and Mc Donald Islands" },
{ code: "+98", flag: "🇮🇷", country: "Iran (Islamic Republic Of)" },
{ code: "+231", flag: "🇱🇷", country: "Liberia" },
{ code: "+370", flag: "🇱🇹", country: "Lithuania" },
{ code: "+377", flag: "🇲🇨", country: "Monaco" },
{ code: "+222", flag: "🇲🇷", country: "Mauritania" },
{ code: "+57", flag: "🇨🇴", country: "Colombia" },
{ code: "+216", flag: "🇹🇳", country: "Tunisia" },
{ code: "+1-345", flag: "🇰🇾", country: "Cayman Islands" },
{ code: "+62", flag: "🇮🇩", country: "Indonesia" },
{ code: "+378", flag: "🇸🇲", country: "San Marino" },
{ code: "+1", flag: "🇺🇸", country: "United States" },
{ code: "+383", flag: "🇽🇰", country: "Kosovo" },
{ code: "+376", flag: "🇦🇩", country: "Andorra" },
{ code: "+1-246", flag: "🇧🇧", country: "Barbados" },
{ code: "+963", flag: "🇸🇾", country: "Syrian Arab Republic" },
{ code: "+359", flag: "🇧🇬", country: "Bulgaria" },
{ code: "+213", flag: "🇩🇿", country: "Algeria" },
{ code: "+593", flag: "🇪🇨", country: "Ecuador" },
{ code: "+240", flag: "🇬🇶", country: "Equatorial Guinea" },
{ code: "+44", flag: "🇯🇪", country: "Jersey" },
{ code: "+254", flag: "🇰🇪", country: "Kenya" },
{ code: "+64", flag: "🇳🇿", country: "New Zealand" },
{ code: "+250", flag: "🇷🇼", country: "Rwanda" },
{ code: "+291", flag: "🇪🇷", country: "Eritrea" },
{ code: "+47", flag: "🇳🇴", country: "Norway" },
{ code: "+51", flag: "🇵🇪", country: "Peru" },
{ code: "+290", flag: "🇸🇭", country: "Saint Helena" },
{ code: "+508", flag: "🇵🇲", country: "Saint Pierre And Miquelon" },
{ code: "+260", flag: "🇿🇲", country: "Zambia" },
{ code: "+354", flag: "🇮🇸", country: "Iceland" },
{ code: "+39", flag: "🇮🇹", country: "Italy" },
{ code: "+977", flag: "🇳🇵", country: "Nepal" },
{ code: "+386", flag: "🇸🇮", country: "Slovenia" },
{ code: "+218", flag: "🇱🇾", country: "Libyan Arab Jamahiriya" },
{ code: "+505", flag: "🇳🇮", country: "Nicaragua" },
{ code: "+248", flag: "🇸🇨", country: "Seychelles" },
{ code: "+594", flag: "🇬🇫", country: "French Guiana" },
{ code: "+972", flag: "🇮🇱", country: "Israel" },
{ code: "+1-670", flag: "🇲🇵", country: "Northern Mariana Islands" },
{ code: "+1-64", flag: "🇵🇳", country: "Pitcairn" },
{ code: "+351", flag: "🇵🇹", country: "Portugal" },
{ code: "+503", flag: "🇸🇻", country: "El Salvador" },
{ code: "+44", flag: "🇬🇧", country: "United Kingdom" },
{ code: "+689", flag: "🇵🇫", country: "French Polynesia" },
{ code: "+1-721", flag: "🇸🇽", country: "Sint Maarten" },
{ code: "+380", flag: "🇺🇦", country: "Ukraine" },
{ code: "+599", flag: "🇧🇶", country: "Bonaire, Saint Eustatius and Saba" },
{ code: "+500", flag: "🇫🇰", country: "Falkland Islands (Malvinas)" },
{ code: "+995", flag: "🇬🇪", country: "Georgia" },
{ code: "+1-671", flag: "🇬🇺", country: "Guam" },
{ code: "+82", flag: "🇰🇷", country: "Korea, Republic Of" },
{ code: "+507", flag: "🇵🇦", country: "Panama" },
{ code: "+1", flag: "🇺🇸", country: "United States Minor Outlying Islands" },
{ code: "+964", flag: "🇮🇶", country: "Iraq" },
{ code: "+965", flag: "🇰🇼", country: "Kuwait" },
{ code: "+39", flag: "🇻🇦", country: "Vatican City State (Holy See)" },
{ code: "+385", flag: "🇭🇷", country: "Croatia (Local Name: Hrvatska)" },
{ code: "+92", flag: "🇵🇰", country: "Pakistan" },
{ code: "+967", flag: "🇾🇪", country: "Yemen" },
{ code: "+267", flag: "🇧🇼", country: "Botswana" },
{ code: "+970", flag: "🇵🇸", country: "Palestinian Territory, Occupied" },
{ code: "+90", flag: "🇹🇷", country: "Turkey" },
{ code: "+1-473", flag: "🇬🇩", country: "Grenada" },
{ code: "+356", flag: "🇲🇹", country: "Malta" },
{
code: "+995",
flag: "🇬🇪",
country: "South Georgia And The South Sandwich Islands",
},
{ code: "+236", flag: "🇨🇫", country: "Central African Republic" },
{ code: "+371", flag: "🇱🇻", country: "Latvia" },
{
code: "+850",
flag: "🇰🇵",
country: "Korea, Democratic People's Republic Of",
},
{ code: "+1-649", flag: "🇹🇨", country: "Turks And Caicos Islands" },
{ code: "+599", flag: "🇨🇼", country: "Curacao" },
{ code: "+245", flag: "🇬🇼", country: "Guinea-Bissau" },
{ code: "+94", flag: "🇱🇰", country: "Sri Lanka" },
{ code: "+596", flag: "🇲🇶", country: "Martinique" },
{ code: "+262", flag: "🇾🇹", country: "Mayotte" },
{ code: "+688", flag: "🇹🇻", country: "Tuvalu" },
{ code: "+49", flag: "🇩🇪", country: "Germany" },
{ code: "+65", flag: "🇸🇬", country: "Singapore" },
{ code: "+381", flag: "🇷🇸", country: "Serbia" },
{ code: "+975", flag: "🇧🇹", country: "Bhutan" },
{ code: "+266", flag: "🇱🇸", country: "Lesotho" },
{ code: "+421", flag: "🇸🇰", country: "Slovakia" },
{ code: "+1-784", flag: "🇻🇨", country: "Saint Vincent And The Grenadines" },
{ code: "+673", flag: "🇧🇳", country: "Brunei Darussalam" },
{ code: "+509", flag: "🇭🇹", country: "Haiti" },
{
code: "+389",
flag: "🇲🇰",
country: "Macedonia, The Former Yugoslav Republic Of",
},
{ code: "+886", flag: "🇹🇼", country: "Taiwan" },
{ code: "+670", flag: "🇹🇱", country: "Cocos (Keeling) Islands" },
{ code: "+352", flag: "🇱🇺", country: "Luxembourg" },
{ code: "+880", flag: "🇧🇩", country: "Bangladesh" },
{ code: "+676", flag: "🇹🇴", country: "Tonga" },
{ code: "+681", flag: "🇼🇫", country: "Wallis And Futuna Islands" },
{ code: "+257", flag: "🇧🇮", country: "Burundi" },
{ code: "+502", flag: "🇬🇹", country: "Guatemala" },
{ code: "+855", flag: "🇰🇭", country: "Cambodia" },
{ code: "+235", flag: "🇹🇩", country: "Chad" },
{ code: "+216", flag: "🇹🇳", country: "Tunisia" },
{ code: "+1-242", flag: "🇧🇸", country: "Bahamas" },
{ code: "+350", flag: "🇬🇮", country: "Gibraltar" },
{ code: "+52", flag: "🇲🇽", country: "Mexico" },
{ code: "+856", flag: "🇱🇦", country: "Lao People's Democratic Republic" },
{ code: "+680", flag: "🇵🇼", country: "Palau" },
{ code: "+249", flag: "🇸🇩", country: "South Sudan" },
{ code: "+1-340", flag: "🇻🇮", country: "Virgin Islands (U.S.)" },
{ code: "+355", flag: "🇦🇱", country: "Albania" },
{ code: "+246", flag: "🇮🇴", country: "British Indian Ocean Territory" },
{ code: "+235", flag: "🇹🇩", country: "Chad" },
{ code: "+263", flag: "🇿🇼", country: "Zimbabwe" },
{ code: "+357", flag: "🇨🇾", country: "Cyprus" },
{ code: "+350", flag: "🇬🇮", country: "Gibraltar" },
{ code: "+256", flag: "🇺🇬", country: "Uganda" },
{ code: "+685", flag: "🇼🇸", country: "Samoa" },
{ code: "+1", flag: "🇺🇸", country: "Canada" },
{ code: "+506", flag: "🇨🇷", country: "Costa Rica" },
{ code: "+34", flag: "🇪🇸", country: "Spain" },
{ code: "+684", flag: "🇦🇸", country: "American Samoa" },
{ code: "+1-268", flag: "🇦🇬", country: "Antigua and Barbuda" },
{ code: "+86", flag: "🇨🇳", country: "China" },
{ code: "+48", flag: "🇵🇱", country: "Poland" },
{ code: "+974", flag: "🇶🇦", country: "Qatar" },
{ code: "+36", flag: "🇭🇺", country: "Hungary" },
{ code: "+996", flag: "🇰🇬", country: "Kyrgyzstan" },
{ code: "+258", flag: "🇲🇿", country: "Mozambique" },
{ code: "+675", flag: "🇵🇬", country: "Papua New Guinea" },
{ code: "+41", flag: "🇨🇭", country: "Switzerland" },
{ code: "+269", flag: "🇰🇲", country: "Comoros" },
{ code: "+230", flag: "🇲🇺", country: "Mauritius" },
{ code: "+60", flag: "🇲🇾", country: "Malaysia" },
{ code: "+228", flag: "🇹🇬", country: "Togo" },
{ code: "+994", flag: "🇦🇿", country: "Azerbaijan" },
{ code: "+501", flag: "🇧🇿", country: "Belize" },
{ code: "+682", flag: "🇨🇰", country: "Cook Islands" },
{ code: "+1-767", flag: "🇩🇲", country: "Dominica" },
{ code: "+372", flag: "🇪🇪", country: "Estonia" },
{ code: "+220", flag: "🇬🇲", country: "Gambia" },
{ code: "+423", flag: "🇱🇮", country: "Liechtenstein" },
{ code: "+683", flag: "🇳🇺", country: "Niue" },
{ code: "+244", flag: "🇦🇴", country: "Angola" },
{ code: "+241", flag: "🇬🇦", country: "Gabon" },
{ code: "+40", flag: "🇷🇴", country: "Romania" },
{ code: "+966", flag: "🇸🇦", country: "Saudi Arabia" },
{ code: "+221", flag: "🇸🇳", country: "Senegal" },
{ code: "+232", flag: "🇸🇱", country: "Sierra Leone" },
{ code: "+262", flag: "🇹🇫", country: "French Southern Territories" },
{ code: "+670", flag: "🇹🇱", country: "Timor-Leste" },
{ code: "+1-284", flag: "🇻🇬", country: "Virgin Islands (British)" },
{ code: "+297", flag: "🇦🇼", country: "Aruba" },
{ code: "+56", flag: "🇨🇱", country: "Chile" },
{ code: "+53", flag: "🇨🇺", country: "Cuba" },
{ code: "+595", flag: "🇵🇾", country: "Paraguay" },
{ code: "+43", flag: "🇦🇹", country: "Austria" },
{ code: "+590", flag: "🇧🇱", country: "Saint Barthélemy" },
{ code: "+238", flag: "🇨🇻", country: "Cape Verde" },
{ code: "+853", flag: "🇲🇴", country: "Macau" },
{ code: "+1-664", flag: "🇲🇸", country: "Montserrat" },
{ code: "+265", flag: "🇲🇼", country: "Malawi" },
{ code: "+678", flag: "🇻🇺", country: "Vanuatu" },
{ code: "+251", flag: "🇪🇹", country: "Ethiopia" },
{ code: "+298", flag: "🇫🇴", country: "Faroe Islands" },
{ code: "+224", flag: "🇬🇳", country: "Guinea" },
{ code: "+30", flag: "🇬🇷", country: "Greece" },
{ code: "+370", flag: "🇱🇹", country: "Aaland Islands" },
{ code: "+84", flag: "🇻🇳", country: "Viet Nam" },
{ code: "+960", flag: "🇲🇻", country: "Maldives" },
{ code: "+264", flag: "🇳🇦", country: "Namibia" },
{ code: "+31", flag: "🇳🇱", country: "Netherlands" },
{ code: "+1-340", flag: "🇻🇮", country: "Virgin Islands (U.S.)" },
{ code: "+374", flag: "🇦🇲", country: "Armenia" },
{ code: "+255", flag: "🇹🇿", country: "Tanzania, United Republic Of" },
{ code: "+373", flag: "🇲🇩", country: "Moldova, Republic Of" },
{ code: "+681", flag: "🇼🇫", country: "Wallis And Futuna Islands" },
{ code: "+46", flag: "🇸🇪", country: "Sweden" },
{ code: "+973", flag: "🇧🇭", country: "Bahrain" },
{ code: "+32", flag: "🇧🇪", country: "Belgium" },
{ code: "+61", flag: "🇦🇶", country: "Christmas Island" },
{ code: "+20", flag: "🇪🇬", country: "Egypt" },
{ code: "+420", flag: "🇨🇿", country: "Czech Republic" },
{ code: "+61", flag: "🇦🇺", country: "Australia" },
{ code: "+1-441", flag: "🇧🇸", country: "Bermuda" },
{ code: "+228", flag: "🇬🇲", country: "Guernsey" },
];
export type CountryCodeEntry = (typeof COUNTRY_CODES)[number];
// Phone number validation regex
export const PHONE_REGEX = /^[\+]?[1-9][\d]{0,15}$/;