UNPKG

postal-code-checker

Version:

A package for validating postal codes from various countries.

1,508 lines (1,503 loc) 37.7 kB
/** * Postal code data sourced from the European Central Bank (ECB). * Source: https://www.ecb.europa.eu/stats/ecb_statistics/anacredit/html/index.en.html * Retrieved on: 4th AUG 2024 * * This data has been processed and reformatted for use in this project. * This data is used in accordance with the ECB's terms of use and data policies. */ var COUNTRIES = { AD: { regex: "/^(AD\\d{3})$/", example: ["AD100"], isGenericRegex: false, country: "Andorra", }, AE: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "United Arab Emirates", }, AF: { regex: "/^(\\d{4})$/", example: ["1057"], isGenericRegex: false, country: "Afghanistan", }, AG: { regex: "/^(.{1,255})$/", example: ["33901"], isGenericRegex: true, country: "Antigua and Barbuda", }, AI: { regex: "/^((AI-2640))$/", example: ["AI-2640"], isGenericRegex: false, country: "Anguilla", }, AL: { regex: "/^(\\d{4})$/", example: ["5300"], isGenericRegex: false, country: "Albania", }, AM: { regex: "/^((\\d{4})|(\\d{6}))$/", example: ["0010", " 001011"], isGenericRegex: false, country: "Armenia", }, AO: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Angola", }, AQ: { regex: "/^((7151))$/", example: ["7151"], isGenericRegex: false, country: "Antarctica", }, AR: { regex: "/^(([A-Z]\\d{4}[A-Z]{3})|([A-Z]\\d{4}))$/", example: ["C1425CLA", " U9000"], isGenericRegex: false, country: "Argentina", }, AS: { regex: "/^(967\\d{2}(-\\d{4})?)$/", example: ["96799", " 96799-9999"], isGenericRegex: false, country: "American Samoa", }, AT: { regex: "/^(\\d{4})$/", example: ["1010"], isGenericRegex: false, country: "Austria", }, AU: { regex: "/^(\\d{4})$/", example: ["2599"], isGenericRegex: false, country: "Australia", }, AW: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Aruba", }, AZ: { regex: "/^((AZ)(\\d{4})|(AZ )(\\d{4}))$/", example: ["AZ 1000", " AZ1000"], isGenericRegex: false, country: "Azerbaijan", }, BA: { regex: "/^(\\d{5})$/", example: ["71000"], isGenericRegex: false, country: "Bosnia and Herzegovina", }, BB: { regex: "/^(BB\\d{5})$/", example: ["BB15094"], isGenericRegex: false, country: "Barbados", }, BD: { regex: "/^(\\d{4})$/", example: ["1219"], isGenericRegex: false, country: "Bangladesh", }, BE: { regex: "/^(\\d{4})$/", example: ["1049"], isGenericRegex: false, country: "Belgium", }, BF: { regex: "/^([1-9]\\d{4})$/", example: ["99999"], isGenericRegex: false, country: "Burkina Faso", }, BG: { regex: "/^(\\d{4})$/", example: ["1000"], isGenericRegex: false, country: "Bulgaria", }, BH: { regex: "/^(\\d{3}\\d?)$/", example: ["317", " 1216"], isGenericRegex: false, country: "Bahrain", }, BI: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Burundi", }, BJ: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Benin", }, BM: { regex: "/^([A-Z]{2} \\d{2})$/", example: ["CR 03"], isGenericRegex: false, country: "Bermuda", }, BN: { regex: "/^([A-Z]{2}\\d{4})$/", example: ["KB2333"], isGenericRegex: false, country: "Brunei Darussalam", }, BO: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Bolivia", }, BQ: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Bonaire, Sint Eustatius and Saba", }, BR: { regex: "/^([0-9]{5}-[0-9]{3})$/", example: ["28999-999"], isGenericRegex: false, country: "Brazil", }, BS: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Bahamas", }, BT: { regex: "/^(\\d{5})$/", example: ["31002"], isGenericRegex: false, country: "Bhutan", }, BV: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Bouvet Island", }, BW: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Botswana", }, BY: { regex: "/^(\\d{6})$/", example: ["231300"], isGenericRegex: false, country: "Belarus", }, BZ: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Belize", }, CA: { regex: "/^([A-Z][0-9][A-Z] [0-9][A-Z][0-9])$/", example: ["K1A 0T6"], isGenericRegex: false, country: "Canada", }, CC: { regex: "/^((6799))$/", example: ["6799"], isGenericRegex: false, country: "Cocos (Keeling) Islands", }, CD: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Congo, the Democratic Republic of the", }, CF: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Central African Republic", }, CG: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Congo", }, CH: { regex: "/^([1-9]\\d{3})$/", example: ["8050"], isGenericRegex: false, country: "Switzerland", }, CI: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Côte d'Ivoire", }, CK: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Cook Islands", }, CL: { regex: "/^(\\d{7})$/", example: ["9340000"], isGenericRegex: false, country: "Chile", }, CM: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Cameroon", }, CN: { regex: "/^(\\d{6})$/", example: ["710000"], isGenericRegex: false, country: "China", }, CO: { regex: "/^(\\d{6})$/", example: ["111121"], isGenericRegex: false, country: "Colombia", }, CR: { regex: "/^(\\d{5})$/", example: ["10101"], isGenericRegex: false, country: "Costa Rica", }, CU: { regex: "/^((CP)?\\d{5})$/", example: ["CP10400"], isGenericRegex: false, country: "Cuba", }, CV: { regex: "/^(\\d{4})$/", example: ["5110"], isGenericRegex: false, country: "Cabo Verde", }, CW: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Curaçao", }, CX: { regex: "/^((6798))$/", example: ["6798"], isGenericRegex: false, country: "Christmas Island", }, CY: { regex: "/^([1-9]\\d{3})$/", example: ["4999"], isGenericRegex: false, country: "Cyprus", }, CZ: { regex: "/^([1-7][0-9]{2} [0-9]{2}|[1-7][0-9]{4})$/", example: ["160 00", " 16000"], isGenericRegex: false, country: "Czech Republic", }, DE: { regex: "/^(\\d{5})$/", example: ["60320"], isGenericRegex: false, country: "Germany", }, DJ: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Djibouti", }, DK: { regex: "/^(\\d{4})$/", example: ["2000"], isGenericRegex: false, country: "Denmark", }, DM: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Dominica", }, DO: { regex: "/^(\\d{5})$/", example: ["10103"], isGenericRegex: false, country: "Dominican Republic", }, DZ: { regex: "/^(\\d{5})$/", example: ["16000"], isGenericRegex: false, country: "Algeria", }, EC: { regex: "/^(\\d{6})$/", example: ["170515"], isGenericRegex: false, country: "Ecuador", }, EE: { regex: "/^(\\d{5})$/", example: ["10111"], isGenericRegex: false, country: "Estonia", }, EG: { regex: "/^(\\d{5})$/", example: ["12411"], isGenericRegex: false, country: "Egypt", }, ER: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Eritrea", }, ES: { regex: "/^(\\d{5})$/", example: ["28006"], isGenericRegex: false, country: "Spain", }, ET: { regex: "/^(\\d{4})$/", example: ["3020"], isGenericRegex: false, country: "Ethiopia", }, FI: { regex: "/^(\\d{5})$/", example: ["00180"], isGenericRegex: false, country: "Finland", }, FJ: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Fiji", }, FK: { regex: "/^((FIQQ 1ZZ))$/", example: ["FIQQ 1ZZ"], isGenericRegex: false, country: "Falkland Islands (Malvinas)", }, FM: { regex: "/^(9694\\d{1}(-\\d{4})?)$/", example: ["96942", " 96942-9999"], isGenericRegex: false, country: "Micronesia, Federated States of", }, FO: { regex: "/^(\\d{3})$/", example: ["927"], isGenericRegex: false, country: "Faroe Islands", }, FR: { regex: "/^(\\d{5})$/", example: ["75008"], isGenericRegex: false, country: "France", }, GA: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Gabon", }, GB: { regex: "/^(([G][I][R] 0[A]{2})|((([A-Z][0-9]{1,2})|(([A-Z][A-HJ-Y][0-9]{1,2})|(([A-Z][0-9][A-Z])|([A-Z][A-HJ-Y][0-9]?[A-Z])))) [0-9][A-Z]{2}))$/", example: ["DT3 6GB", " L2 2DP"], isGenericRegex: false, country: "United Kingdom of Great Britain and Northern Ireland (the)", }, GD: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Grenada", }, GE: { regex: "/^(\\d{4})$/", example: ["0100"], isGenericRegex: false, country: "Georgia", }, GG: { regex: "/^((GY)([0-9][0-9A-HJKPS-UW]?|[A-HK-Y][0-9][0-9ABEHMNPRV-Y]?) [0-9][ABD-HJLNP-UW-Z]{2})$/", example: ["GY1 3HR"], isGenericRegex: false, country: "Guernsey", }, GH: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Ghana", }, GI: { regex: "/^((GX11 1AA))$/", example: ["GX11 1AA"], isGenericRegex: false, country: "Gibraltar", }, GL: { regex: "/^(39\\d{2})$/", example: ["3905"], isGenericRegex: false, country: "Greenland", }, GM: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Gambia", }, GN: { regex: "/^(\\d{3})$/", example: ["001"], isGenericRegex: false, country: "Guinea", }, GQ: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Equatorial Guinea", }, GR: { regex: "/^((\\d{3}) \\d{2}|\\d{5})$/", example: ["241 00", " 24100"], isGenericRegex: false, country: "Greece", }, GS: { regex: "/^((SIQQ 1ZZ))$/", example: ["SIQQ 1ZZ"], isGenericRegex: false, country: "South Georgia and the South Sandwich Islands", }, GT: { regex: "/^(\\d{5})$/", example: ["01002"], isGenericRegex: false, country: "Guatemala", }, GU: { regex: "/^(((969)[1-3][0-2])(-\\d{4})?)$/", example: ["96911", " 96911-9999"], isGenericRegex: false, country: "Guam", }, GW: { regex: "/^(\\d{4})$/", example: ["1000"], isGenericRegex: false, country: "Guinea-Bissau", }, GY: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Guyana", }, HK: { regex: "/^((999077))$/", example: ["999077"], isGenericRegex: false, country: "Hong Kong", }, HM: { regex: "/^((7151))$/", example: ["7151"], isGenericRegex: false, country: "Heard Island and McDonald Islands", }, HN: { regex: "/^(\\d{5})$/", example: ["34101"], isGenericRegex: false, country: "Honduras", }, HR: { regex: "/^([1-5]\\d{4})$/", example: ["21000"], isGenericRegex: false, country: "Croatia", }, HT: { regex: "/^((HT)(\\d{4})|(HT) (\\d{4}))$/", example: ["HT1440", " HT 1440"], isGenericRegex: false, country: "Haiti", }, HU: { regex: "/^([1-9]\\d{3})$/", example: ["2310"], isGenericRegex: false, country: "Hungary", }, ID: { regex: "/^([1-9]\\d{4})$/", example: ["15360"], isGenericRegex: false, country: "Indonesia", }, IE: { regex: "/^(.{1,255})$/", example: ["D02 AF30"], isGenericRegex: true, country: "Ireland", }, IL: { regex: "/^(\\d{7})$/", example: ["1029200"], isGenericRegex: false, country: "Israel", }, IM: { regex: "/^((IM)([0-9][0-9A-HJKPS-UW]?|[A-HK-Y][0-9][0-9ABEHMNPRV-Y]?) [0-9][ABD-HJLNP-UW-Z]{2})$/", example: ["IM5 1JS"], isGenericRegex: false, country: "Isle of Man", }, IN: { regex: "/^([1-9]\\d{5})$/", example: ["500012"], isGenericRegex: false, country: "India", }, IO: { regex: "/^((BB9D 1ZZ))$/", example: ["BB9D 1ZZ"], isGenericRegex: false, country: "British Indian Ocean Territory", }, IQ: { regex: "/^(\\d{5})$/", example: ["58019"], isGenericRegex: false, country: "Iraq", }, IR: { regex: "/^(\\d{5}[\\-]?\\d{5})$/", example: ["9187158198", " 15119-43943"], isGenericRegex: false, country: "Iran, Islamic Republic of", }, IS: { regex: "/^([1-9]\\d{2})$/", example: ["101"], isGenericRegex: false, country: "Iceland", }, IT: { regex: "/^(\\d{5})$/", example: ["36051"], isGenericRegex: false, country: "Italy", }, JE: { regex: "/^(JE[0-9]{1}[\\s]([\\d][A-Z]{2}))$/", example: ["JE1 1AG"], isGenericRegex: false, country: "Jersey", }, JM: { regex: "/^((JM)[A-Z]{3}\\d{2})$/", example: ["JMAAW19"], isGenericRegex: false, country: "Jamaica", }, JO: { regex: "/^(\\d{5})$/", example: ["11118"], isGenericRegex: false, country: "Jordan", }, JP: { regex: "/^((\\d{3}-\\d{4}))$/", example: ["408-0307"], isGenericRegex: false, country: "Japan", }, KE: { regex: "/^(\\d{5})$/", example: ["40406"], isGenericRegex: false, country: "Kenya", }, KG: { regex: "/^(\\d{6})$/", example: ["720020"], isGenericRegex: false, country: "Kyrgyzstan", }, KH: { regex: "/^(\\d{5,6})$/", example: ["01501", " 010102", " 120209"], isGenericRegex: false, country: "Cambodia", }, KI: { regex: "/^(KI\\d{4})$/", example: ["KI0107"], isGenericRegex: false, country: "Kiribati", }, KM: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Comoros", }, KN: { regex: "/^(KN\\d{4}(\\-\\d{4})?)$/", example: ["KN0101", " KN0802", " KN0801-0802", " KN0901-0902"], isGenericRegex: false, country: "Saint Kitts and Nevis", }, KP: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Korea, Democratic People's Republic of", }, KR: { regex: "/^(\\d{5})$/", example: ["11962"], isGenericRegex: false, country: "Korea, Republic of", }, KW: { regex: "/^(\\d{5})$/", example: ["60000"], isGenericRegex: false, country: "Kuwait", }, KY: { regex: "/^([K][Y][0-9]{1}[-]([0-9]){4})$/", example: ["KY1-1800"], isGenericRegex: false, country: "Cayman Islands", }, KZ: { regex: "/^(([A-Z]\\d{2}[A-Z]\\d[A-Z]\\d)|(\\d{6}))$/", example: ["A10A5T4", " 010010"], isGenericRegex: false, country: "Kazakhstan", }, LA: { regex: "/^(\\d{5})$/", example: ["13000"], isGenericRegex: false, country: "Lao People's Democratic Republic", }, LB: { regex: "/^(\\d{4}( \\d{4})?)$/", example: ["2038 3054", " 1103"], isGenericRegex: false, country: "Lebanon", }, LC: { regex: "/^(LC\\d{2} \\d{3})$/", example: ["LC05 201"], isGenericRegex: false, country: "Saint Lucia", }, LI: { regex: "/^(\\d{4})$/", example: ["9490"], isGenericRegex: false, country: "Liechtenstein", }, LK: { regex: "/^(\\d{5})$/", example: ["80212"], isGenericRegex: false, country: "Sri Lanka", }, LR: { regex: "/^(\\d{4})$/", example: ["1000"], isGenericRegex: false, country: "Liberia", }, LS: { regex: "/^(\\d{3})$/", example: ["100"], isGenericRegex: false, country: "Lesotho", }, LT: { regex: "/^(((LT)[\\-])?(\\d{5}))$/", example: ["LT-01100", " 01100"], isGenericRegex: false, country: "Lithuania", }, LU: { regex: "/^(((L)[\\-])?(\\d{4}))$/", example: ["1019", " L-2530"], isGenericRegex: false, country: "Luxembourg", }, LV: { regex: "/^(((LV)[\\-])?(\\d{4}))$/", example: ["LV-1010", " 1010"], isGenericRegex: false, country: "Latvia", }, LY: { regex: "/^(.{1,255})$/", example: ["13.05.312"], isGenericRegex: true, country: "Libya", }, MA: { regex: "/^([1-9]\\d{4})$/", example: ["20192"], isGenericRegex: false, country: "Morocco", }, MD: { regex: "/^((MD[\\-]?)?(\\d{4}))$/", example: ["MD2001", " MD-2001", " 2001"], isGenericRegex: false, country: "Moldova, Republic of", }, ME: { regex: "/^(\\d{5})$/", example: ["81250"], isGenericRegex: false, country: "Montenegro", }, MG: { regex: "/^(\\d{3})$/", example: ["101"], isGenericRegex: false, country: "Madagascar", }, MH: { regex: "/^(((969)[6-7][0-9])(-\\d{4})?)$/", example: ["96960", " 96960-9999"], isGenericRegex: false, country: "Marshall Islands", }, MK: { regex: "/^(\\d{4})$/", example: ["1045"], isGenericRegex: false, country: "North Macedonia", }, ML: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Mali", }, MM: { regex: "/^(\\d{5})$/", example: ["11121"], isGenericRegex: false, country: "Myanmar", }, MN: { regex: "/^(\\d{5})$/", example: ["16080"], isGenericRegex: false, country: "Mongolia", }, MO: { regex: "/^(.{1,255})$/", example: ["999078"], isGenericRegex: true, country: "Macao", }, MP: { regex: "/^(9695\\d{1}(-\\d{4})?)$/", example: ["96950", " 96950-9999"], isGenericRegex: false, country: "Northern Mariana Islands", }, MR: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Mauritania", }, MS: { regex: "/^(MSR\\d{4})$/", example: ["MSR1120"], isGenericRegex: false, country: "Montserrat", }, MT: { regex: "/^([A-Z]{3} [0-9]{4}|[A-Z]{2}[0-9]{2}|[A-Z]{2} [0-9]{2}|[A-Z]{3}[0-9]{4}|[A-Z]{3}[0-9]{2}|[A-Z]{3} [0-9]{2})$/", example: ["VLT 1117", " TP01", " TP 01", " RBT1676", " QRM09", " BKR 01"], isGenericRegex: false, country: "Malta", }, MU: { regex: "/^(([0-9A-R]\\d{4}))$/", example: ["A0000", " 20101"], isGenericRegex: false, country: "Mauritius", }, MV: { regex: "/^(\\d{5})$/", example: ["20195"], isGenericRegex: false, country: "Maldives", }, MW: { regex: "/^(\\d{6})$/", example: ["101100", " 307100"], isGenericRegex: false, country: "Malawi", }, MX: { regex: "/^(\\d{5})$/", example: ["97229"], isGenericRegex: false, country: "Mexico", }, MY: { regex: "/^(\\d{5})$/", example: ["50050"], isGenericRegex: false, country: "Malaysia", }, MZ: { regex: "/^(\\d{4})$/", example: ["1104"], isGenericRegex: false, country: "Mozambique", }, NA: { regex: "/^(\\d{5})$/", example: ["10003"], isGenericRegex: false, country: "Namibia", }, NC: { regex: "/^(988\\d{2})$/", example: ["98814"], isGenericRegex: false, country: "New Caledonia", }, NE: { regex: "/^(\\d{4})$/", example: ["8001"], isGenericRegex: false, country: "Niger", }, NF: { regex: "/^((2899))$/", example: ["2899"], isGenericRegex: false, country: "Norfolk Island", }, NG: { regex: "/^([1-9]\\d{5})$/", example: ["100001"], isGenericRegex: false, country: "Nigeria", }, NI: { regex: "/^(\\d{5})$/", example: ["11001"], isGenericRegex: false, country: "Nicaragua", }, NL: { regex: "/^([1-9]\\d{3} [A-Z]{2}|[1-9]\\d{3}[A-Z]{2})$/", example: ["1011 AC", " 1011AC"], isGenericRegex: false, country: "Netherlands", }, NO: { regex: "/^(\\d{4})$/", example: ["5262"], isGenericRegex: false, country: "Norway", }, NP: { regex: "/^(\\d{5})$/", example: ["44600"], isGenericRegex: false, country: "Nepal", }, NR: { regex: "/^((NRU68))$/", example: ["NRU68"], isGenericRegex: false, country: "Nauru", }, NU: { regex: "/^((9974))$/", example: ["9974"], isGenericRegex: false, country: "Niue", }, NZ: { regex: "/^(\\d{4})$/", example: ["8041"], isGenericRegex: false, country: "New Zealand", }, OM: { regex: "/^(\\d{3})$/", example: ["112"], isGenericRegex: false, country: "Oman", }, PA: { regex: "/^(\\d{4})$/", example: ["0601", " 1001"], isGenericRegex: false, country: "Panama", }, PE: { regex: "/^(\\d{5})$/", example: ["15001"], isGenericRegex: false, country: "Peru", }, PF: { regex: "/^(((987)\\d{2}))$/", example: ["98755"], isGenericRegex: false, country: "French Polynesia", }, PG: { regex: "/^(\\d{3})$/", example: ["244"], isGenericRegex: false, country: "Papua New Guinea", }, PH: { regex: "/^(\\d{4})$/", example: ["4104"], isGenericRegex: false, country: "Philippines", }, PK: { regex: "/^([1-9]\\d{4})$/", example: ["75600"], isGenericRegex: false, country: "Pakistan", }, PL: { regex: "/^([0-9]{2}[-]([0-9]){3})$/", example: ["87-100"], isGenericRegex: false, country: "Poland", }, PN: { regex: "/^((PCR9 1ZZ))$/", example: ["PCR9 1ZZ"], isGenericRegex: false, country: "Pitcairn", }, PS: { regex: "/^((P[1-9]\\d{6})|(\\d{3}-\\d{3}))$/", example: ["600-699", " P3600700"], isGenericRegex: false, country: "Palestine, State of", }, PT: { regex: "/^([1-9]\\d{3}((-)\\d{3}))$/", example: ["1000-260"], isGenericRegex: false, country: "Portugal", }, PW: { regex: "/^((96939|96940))$/", example: [" 96939", " 96940"], isGenericRegex: false, country: "Palau", }, PY: { regex: "/^(\\d{4})$/", example: ["3180"], isGenericRegex: false, country: "Paraguay", }, QA: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Qatar", }, RO: { regex: "/^(\\d{6})$/", example: ["507085"], isGenericRegex: false, country: "Romania", }, RS: { regex: "/^(\\d{5,6})$/", example: ["24430", " 456769"], isGenericRegex: false, country: "Serbia", }, RU: { regex: "/^(\\d{6})$/", example: ["385100"], isGenericRegex: false, country: "Russian Federation", }, RW: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Rwanda", }, SA: { regex: "/^([1-8]\\d{4}([\\-]\\d{4})?)$/", example: ["11564", " 75311-8538"], isGenericRegex: false, country: "Saudi Arabia", }, SB: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Solomon Islands", }, SC: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Seychelles", }, SD: { regex: "/^(\\d{5})$/", example: ["13315"], isGenericRegex: false, country: "Sudan", }, SE: { regex: "/^([1-9]\\d{2} \\d{2})$/", example: ["113 51"], isGenericRegex: false, country: "Sweden", }, SG: { regex: "/^(\\d{6})$/", example: ["570150"], isGenericRegex: false, country: "Singapore", }, SH: { regex: "/^((ASCN 1ZZ|TDCU 1ZZ|STHL 1ZZ))$/", example: ["ASCN 1ZZ", " TDCU 1ZZ", " STHL 1ZZ"], isGenericRegex: false, country: "Saint Helena, Ascension and Tristan da Cunha", }, SI: { regex: "/^([1-9]\\d{3})$/", example: ["8341"], isGenericRegex: false, country: "Slovenia", }, SK: { regex: "/^((\\d{3} \\d{2})|\\d{5})$/", example: ["811 01", " 81101"], isGenericRegex: false, country: "Slovakia", }, SL: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Sierra Leone", }, SM: { regex: "/^((4789\\d))$/", example: ["47894"], isGenericRegex: false, country: "San Marino", }, SN: { regex: "/^([1-8]\\d{4})$/", example: ["10200"], isGenericRegex: false, country: "Senegal", }, SO: { regex: "/^(.{1,255})$/", example: ["JH 09010"], isGenericRegex: true, country: "Somalia", }, SR: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Suriname", }, SS: { regex: "/^(\\d{5})$/", example: ["11111"], isGenericRegex: false, country: "South Sudan", }, ST: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "São Tomé and Príncipe", }, SV: { regex: "/^(\\d{4})$/", example: ["1201"], isGenericRegex: false, country: "El Salvador", }, SX: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Sint Maarten (Dutch part)", }, SY: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Syrian Arab Republic", }, SZ: { regex: "/^(([A-Z]\\d{3}))$/", example: ["M201"], isGenericRegex: false, country: "Swaziland", }, TC: { regex: "/^((TKCA 1ZZ))$/", example: ["TKCA 1ZZ"], isGenericRegex: false, country: "Turks and Caicos Islands", }, TD: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Chad", }, TF: { regex: "/^(.{1,255})$/", example: ["98413"], isGenericRegex: true, country: "French Southern Territories", }, TG: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Togo", }, TH: { regex: "/^(\\d{5})$/", example: ["10240"], isGenericRegex: false, country: "Thailand", }, TJ: { regex: "/^(7\\d{5})$/", example: ["799999"], isGenericRegex: false, country: "Tajikistan", }, TK: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Tokelau", }, TL: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Timor-Leste", }, TM: { regex: "/^(7\\d{5})$/", example: ["745180"], isGenericRegex: false, country: "Turkmenistan", }, TN: { regex: "/^(\\d{4})$/", example: ["3200"], isGenericRegex: false, country: "Tunisia", }, TO: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Tonga", }, TR: { regex: "/^(\\d{5})$/", example: ["34000"], isGenericRegex: false, country: "Turkey", }, TT: { regex: "/^(\\d{6})$/", example: ["120110"], isGenericRegex: false, country: "Trinidad and Tobago", }, TV: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Tuvalu", }, TW: { regex: "/^((\\d{3}\\-\\d{3})|(\\d{3}[-]\\d{2})|(\\d{6})|(\\d{3}))$/", example: ["237-01", " 407", " 999999", " 999(-)999"], isGenericRegex: false, country: "Taiwan (Province of China)", }, TZ: { regex: "/^(\\d{5})$/", example: ["31324"], isGenericRegex: false, country: "Tanzania, United Republic of", }, UA: { regex: "/^(\\d{5})$/", example: ["65000"], isGenericRegex: false, country: "Ukraine", }, UG: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Uganda", }, UM: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "United States Minor Outlying Islands", }, US: { regex: "/^(\\d{5}(-\\d{4})?)$/", example: ["11550", " 11550-9999"], isGenericRegex: false, country: "United States of America", }, UY: { regex: "/^([1-9]\\d{4})$/", example: ["11700"], isGenericRegex: false, country: "Uruguay", }, UZ: { regex: "/^(\\d{6})$/", example: ["702100"], isGenericRegex: false, country: "Uzbekistan", }, VA: { regex: "/^((00120))$/", example: ["00120"], isGenericRegex: false, country: "Holy See", }, VC: { regex: "/^((VC)(\\d{4}))$/", example: ["VC0100"], isGenericRegex: false, country: "Saint Vincent and the Grenadines", }, VE: { regex: "/^([1-8]\\d{3})$/", example: ["1061"], isGenericRegex: false, country: "Venezuela (Bolivarian Republic of)", }, VG: { regex: "/^((VG11)[0-6][0])$/", example: ["VG1120"], isGenericRegex: false, country: "Virgin Islands (British)", }, VI: { regex: "/^(008\\d{2}(-\\d{4})?)$/", example: ["00850", " 00850-9999"], isGenericRegex: false, country: "Virgin Islands (U.S.)", }, VN: { regex: "/^(\\d{6})$/", example: ["112132"], isGenericRegex: false, country: "Viet Nam", }, VU: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Vanuatu", }, WF: { regex: "/^((986)\\d{2})$/", example: ["98600"], isGenericRegex: false, country: "Wallis and Futuna", }, WS: { regex: "/^(WS[1-2]\\d{3})$/", example: ["WS1382"], isGenericRegex: false, country: "Samoa", }, YE: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Yemen", }, ZA: { regex: "/^(\\d{4})$/", example: ["6001"], isGenericRegex: false, country: "South Africa", }, ZM: { regex: "/^(\\d{5})$/", example: ["50100"], isGenericRegex: false, country: "Zambia", }, ZW: { regex: "/^(.{1,255})$/", example: [], isGenericRegex: true, country: "Zimbabwe", }, }; /** * Retrieves all countries as an array of CountryOption objects. * * @returns {CountryOption[]} An array of CountryOption objects, each containing: * - countryName: The name of the country * - countryCode: The code of the country * * @example * const countries = getAllCountries(); * // Returns: [ * // { countryName: "United States", countryCode: "US" }, * // { countryName: "Canada", countryCode: "CA" }, * // ... * // ] */ var getAllCountries = function () { return Object.entries(COUNTRIES).map(function (_a) { var code = _a[0], country = _a[1]; return ({ countryName: country.country, countryCode: code.toString(), }); }); }; /** * Retrieves country information based on the provided country code. * * @param {CountryCode} countryCode - The ISO 3166-1 alpha-2 country code. * @returns {Country | null} An object containing country information if found, or null if not found. * * @example * const countryInfo = getCountryByCode('US'); * if (countryInfo) { * console.log(countryInfo.countryCode); // "US" * console.log(countryInfo.countryName); // "United States" * console.log(countryInfo.postalCodeRegex); // Regular expression for US postal codes * console.log(countryInfo.examplePostalCodes);// Array of example US postal codes * console.log(countryInfo.isGenericRegex); // Boolean indicating if the regex is generic * } */ var getCountryByCode = function (countryCode) { var country = COUNTRIES[countryCode]; return country ? { postalCodeRegex: country.regex, examplePostalCodes: country.example, isGenericRegex: country.isGenericRegex, countryName: country.country, countryCode: countryCode, } : null; }; /** * A custom hook for validating postal codes based on country codes. * * @returns {Object} An object containing the validatePostalCode function. * @property {function} validatePostalCode - A function to validate postal codes. */ var usePostalCodeValidation = function () { /** * Validates a postal code for a given country. * * @param {CountryCode} countryCode - The country code to validate against. * @param {string} postalCode - The postal code to validate. * @returns {boolean} True if the postal code is valid for the given country, false otherwise. */ var validatePostalCode = function (countryCode, postalCode) { var country = getCountryByCode(countryCode); if (!country) return false; var regexPattern = country.postalCodeRegex.slice(1, -1); var regex = new RegExp(regexPattern); return regex.test(postalCode); }; return { validatePostalCode: validatePostalCode }; }; export { COUNTRIES, getAllCountries, getCountryByCode, usePostalCodeValidation };