postcode-validator
Version:
Validate postcodes based on country
201 lines (200 loc) • 10.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.POSTCODE_REGEXES = void 0;
const postcode_types_1 = require("./postcode-types");
// TODO: Remove CountryCode.UK in next major version release
exports.POSTCODE_REGEXES = new Map([
[
postcode_types_1.CountryCode.UK,
/^([A-Z]){1}([0-9][0-9]|[0-9]|[A-Z][0-9][A-Z]|[A-Z][0-9][0-9]|[A-Z][0-9]|[0-9][A-Z]){1}([ ])?([0-9][A-z][A-z]){1}$/i,
],
[
postcode_types_1.CountryCode.GB,
/^([A-Z]){1}([0-9][0-9]|[0-9]|[A-Z][0-9][A-Z]|[A-Z][0-9][0-9]|[A-Z][0-9]|[0-9][A-Z]){1}([ ])?([0-9][A-z][A-z]){1}$/i,
],
[postcode_types_1.CountryCode.JE, /^JE\d[\dA-Z]?[ ]?\d[ABD-HJLN-UW-Z]{2}$/],
[postcode_types_1.CountryCode.GG, /^GY\d[\dA-Z]?[ ]?\d[ABD-HJLN-UW-Z]{2}$/],
[postcode_types_1.CountryCode.IM, /^IM\d[\dA-Z]?[ ]?\d[ABD-HJLN-UW-Z]{2}$/],
[postcode_types_1.CountryCode.US, /^([0-9]{5})(?:-([0-9]{4}))?$/],
[postcode_types_1.CountryCode.CA, /^([ABCEGHJKLMNPRSTVXY][0-9][ABCEGHJKLMNPRSTVWXYZ])\s*([0-9][ABCEGHJKLMNPRSTVWXYZ][0-9])$/i],
[postcode_types_1.CountryCode.IE, /^([AC-FHKNPRTV-Y][0-9]{2}|D6W)[ -]?[0-9AC-FHKNPRTV-Y]{4}$/],
[postcode_types_1.CountryCode.DE, /^\d{5}$/],
[postcode_types_1.CountryCode.JP, /^\d{3}-\d{4}$/],
[postcode_types_1.CountryCode.FR, /^\d{2}[ ]?\d{3}$/],
[postcode_types_1.CountryCode.AU, /^\d{4}$/],
[postcode_types_1.CountryCode.IT, /^\d{5}$/],
[postcode_types_1.CountryCode.CH, /^\d{4}$/],
[postcode_types_1.CountryCode.AT, /^(?!0)\d{4}$/],
[postcode_types_1.CountryCode.ES, /^(?:0[1-9]|[1-4]\d|5[0-2])\d{3}$/],
[postcode_types_1.CountryCode.NL, /^\d{4}[ ]?[A-Z]{2}$/],
[postcode_types_1.CountryCode.BE, /^\d{4}$/],
[postcode_types_1.CountryCode.DK, /^\d{4}$/],
[postcode_types_1.CountryCode.SE, /^(SE-)?\d{3}[ ]?\d{2}$/],
[postcode_types_1.CountryCode.NO, /^\d{4}$/],
[postcode_types_1.CountryCode.BR, /^\d{5}[\-]?\d{3}$/],
[postcode_types_1.CountryCode.PT, /^\d{4}([\-]\d{3})?$/],
[postcode_types_1.CountryCode.FI, /^(FI-|AX-)?\d{5}$/],
[postcode_types_1.CountryCode.AX, /^22\d{3}$/],
[postcode_types_1.CountryCode.KR, /^\d{5}$/],
[postcode_types_1.CountryCode.CN, /^\d{6}$/],
[postcode_types_1.CountryCode.TW, /^\d{3}(\d{2,3})?$/],
[postcode_types_1.CountryCode.SG, /^\d{6}$/],
[postcode_types_1.CountryCode.DZ, /^\d{5}$/],
[postcode_types_1.CountryCode.AD, /^AD\d{3}$/],
[postcode_types_1.CountryCode.AR, /^[A-HJ-NP-Z]\d{4}([A-Z]{3})?$/],
[postcode_types_1.CountryCode.AM, /^(37)?\d{4}$/],
[postcode_types_1.CountryCode.AZ, /^\d{4}$/],
[postcode_types_1.CountryCode.BH, /^((1[0-2]|[2-9])\d{2})?$/],
[postcode_types_1.CountryCode.BD, /^\d{4}$/],
[postcode_types_1.CountryCode.BB, /^(BB\d{5})?$/],
[postcode_types_1.CountryCode.BY, /^\d{6}$/],
[postcode_types_1.CountryCode.BM, /^[A-Z]{2}[ ]?[A-Z0-9]{2}$/],
[postcode_types_1.CountryCode.BA, /^\d{5}$/],
[postcode_types_1.CountryCode.IO, /^BBND 1ZZ$/],
[postcode_types_1.CountryCode.BN, /^[A-Z]{2}[ ]?\d{4}$/],
[postcode_types_1.CountryCode.BG, /^\d{4}$/],
[postcode_types_1.CountryCode.KH, /^\d{5}$/],
[postcode_types_1.CountryCode.CV, /^\d{4}$/],
[postcode_types_1.CountryCode.CL, /^\d{7}$/],
[postcode_types_1.CountryCode.CR, /^(\d{4,5}|\d{3}-\d{4})$/],
[postcode_types_1.CountryCode.HR, /^(HR-)?\d{5}$/],
[postcode_types_1.CountryCode.CY, /^\d{4}$/],
[postcode_types_1.CountryCode.CZ, /^\d{3}[ ]?\d{2}$/],
[postcode_types_1.CountryCode.DO, /^\d{5}$/],
[postcode_types_1.CountryCode.EC, /^([A-Z]\d{4}[A-Z]|(?:[A-Z]{2})?\d{6})?$/],
[postcode_types_1.CountryCode.EG, /^\d{5}$/],
[postcode_types_1.CountryCode.EE, /^\d{5}$/],
[postcode_types_1.CountryCode.FO, /^\d{3}$/],
[postcode_types_1.CountryCode.GE, /^\d{4}$/],
[postcode_types_1.CountryCode.GR, /^\d{3}[ ]?\d{2}$/],
[postcode_types_1.CountryCode.GL, /^39\d{2}$/],
[postcode_types_1.CountryCode.GT, /^\d{5}$/],
[postcode_types_1.CountryCode.HT, /^\d{4}$/],
[postcode_types_1.CountryCode.HN, /^(?:\d{5})?$/],
[postcode_types_1.CountryCode.HU, /^\d{4}$/],
[postcode_types_1.CountryCode.IS, /^\d{3}$/],
[postcode_types_1.CountryCode.IN, /^\d{6}$/],
[postcode_types_1.CountryCode.ID, /^\d{5}$/],
[postcode_types_1.CountryCode.IL, /^\d{5,7}$/],
[postcode_types_1.CountryCode.JO, /^\d{5}$/],
[postcode_types_1.CountryCode.KZ, /^\d{6}$/],
[postcode_types_1.CountryCode.KE, /^\d{5}$/],
[postcode_types_1.CountryCode.KW, /^\d{5}$/],
[postcode_types_1.CountryCode.KY, /^KY[123]-\d{4}$/],
[postcode_types_1.CountryCode.LA, /^\d{5}$/],
[postcode_types_1.CountryCode.LV, /^(LV-)?\d{4}$/],
[postcode_types_1.CountryCode.LB, /^(\d{4}([ ]?\d{4})?)?$/],
[postcode_types_1.CountryCode.LI, /^(948[5-9]|949[0-7])$/],
[postcode_types_1.CountryCode.LT, /^(LT-)?\d{5}$/],
[postcode_types_1.CountryCode.LU, /^(L-)?\d{4}$/],
[postcode_types_1.CountryCode.MK, /^\d{4}$/],
[postcode_types_1.CountryCode.MY, /^\d{5}$/],
[postcode_types_1.CountryCode.MV, /^\d{5}$/],
[postcode_types_1.CountryCode.MT, /^[A-Z]{3}[ ]?\d{2,4}$/],
[postcode_types_1.CountryCode.MU, /^((\d|[A-Z])\d{4})?$/],
[postcode_types_1.CountryCode.MX, /^\d{5}$/],
[postcode_types_1.CountryCode.MD, /^\d{4}$/],
[postcode_types_1.CountryCode.MC, /^980\d{2}$/],
[postcode_types_1.CountryCode.MA, /^\d{5}$/],
[postcode_types_1.CountryCode.NP, /^\d{5}$/],
[postcode_types_1.CountryCode.NZ, /^\d{4}$/],
[postcode_types_1.CountryCode.NI, /^((\d{4}-)?\d{3}-\d{3}(-\d{1})?)?$/],
[postcode_types_1.CountryCode.NG, /^(\d{6})?$/],
[postcode_types_1.CountryCode.OM, /^(PC )?\d{3}$/],
[postcode_types_1.CountryCode.PA, /^\d{4}$/],
[postcode_types_1.CountryCode.PK, /^\d{5}$/],
[postcode_types_1.CountryCode.PY, /^\d{4}$/],
[postcode_types_1.CountryCode.PH, /^\d{4}$/],
[postcode_types_1.CountryCode.PL, /^\d{2}-\d{3}$/],
[postcode_types_1.CountryCode.PR, /^00[679]\d{2}([ \-]\d{4})?$/],
[postcode_types_1.CountryCode.RO, /^\d{6}$/],
[postcode_types_1.CountryCode.RU, /^\d{6}$/],
[postcode_types_1.CountryCode.SM, /^4789\d$/],
[postcode_types_1.CountryCode.SA, /^\d{5}$/],
[postcode_types_1.CountryCode.SN, /^\d{5}$/],
[postcode_types_1.CountryCode.SK, /^\d{3}[ ]?\d{2}$/],
[postcode_types_1.CountryCode.SI, /^(SI-)?\d{4}$/],
[postcode_types_1.CountryCode.ZA, /^\d{4}$/],
[postcode_types_1.CountryCode.LK, /^\d{5}$/],
[postcode_types_1.CountryCode.TJ, /^\d{6}$/],
[postcode_types_1.CountryCode.TH, /^\d{5}$/],
[postcode_types_1.CountryCode.TN, /^\d{4}$/],
[postcode_types_1.CountryCode.TR, /^\d{5}$/],
[postcode_types_1.CountryCode.TM, /^\d{6}$/],
[postcode_types_1.CountryCode.UA, /^\d{5}$/],
[postcode_types_1.CountryCode.UY, /^\d{5}$/],
[postcode_types_1.CountryCode.UZ, /^\d{6}$/],
[postcode_types_1.CountryCode.VA, /^00120$/],
[postcode_types_1.CountryCode.VE, /^\d{4}$/],
[postcode_types_1.CountryCode.ZM, /^\d{5}$/],
[postcode_types_1.CountryCode.AS, /^96799$/],
[postcode_types_1.CountryCode.CC, /^6799$/],
[postcode_types_1.CountryCode.CK, /^\d{4}$/],
[postcode_types_1.CountryCode.RS, /^\d{5,6}$/],
[postcode_types_1.CountryCode.ME, /^8\d{4}$/],
[postcode_types_1.CountryCode.CS, /^\d{5}$/],
[postcode_types_1.CountryCode.YU, /^\d{5}$/],
[postcode_types_1.CountryCode.CX, /^6798$/],
[postcode_types_1.CountryCode.ET, /^\d{4}$/],
[postcode_types_1.CountryCode.FK, /^FIQQ 1ZZ$/],
[postcode_types_1.CountryCode.NF, /^2899$/],
[postcode_types_1.CountryCode.FM, /^(9694[1-4])([ \-]\d{4})?$/],
[postcode_types_1.CountryCode.GF, /^9[78]3\d{2}$/],
[postcode_types_1.CountryCode.GN, /^\d{3}$/],
[postcode_types_1.CountryCode.GP, /^9[78][01]\d{2}$/],
[postcode_types_1.CountryCode.GS, /^SIQQ 1ZZ$/],
[postcode_types_1.CountryCode.GU, /^969[123]\d([ \-]\d{4})?$/],
[postcode_types_1.CountryCode.GW, /^\d{4}$/],
[postcode_types_1.CountryCode.HM, /^\d{4}$/],
[postcode_types_1.CountryCode.IQ, /^\d{5}$/],
[postcode_types_1.CountryCode.KG, /^\d{6}$/],
[postcode_types_1.CountryCode.LR, /^\d{4}$/],
[postcode_types_1.CountryCode.LS, /^\d{3}$/],
[postcode_types_1.CountryCode.MG, /^\d{3}$/],
[postcode_types_1.CountryCode.MH, /^969[67]\d([ \-]\d{4})?$/],
[postcode_types_1.CountryCode.MN, /^\d{5}$/],
[postcode_types_1.CountryCode.MP, /^9695[012]([ \-]\d{4})?$/],
[postcode_types_1.CountryCode.MQ, /^9[78]2\d{2}$/],
[postcode_types_1.CountryCode.NC, /^988\d{2}$/],
[postcode_types_1.CountryCode.NE, /^\d{4}$/],
[postcode_types_1.CountryCode.VI, /^008(([0-4]\d)|(5[01]))([ \-]\d{4})?$/],
[postcode_types_1.CountryCode.VN, /^\d{6}$/],
[postcode_types_1.CountryCode.PF, /^987\d{2}$/],
[postcode_types_1.CountryCode.PG, /^\d{3}$/],
[postcode_types_1.CountryCode.PM, /^9[78]5\d{2}$/],
[postcode_types_1.CountryCode.PN, /^PCRN 1ZZ$/],
[postcode_types_1.CountryCode.PW, /^96940$/],
[postcode_types_1.CountryCode.RE, /^9[78]4\d{2}$/],
[postcode_types_1.CountryCode.SH, /^(ASCN|STHL) 1ZZ$/],
[postcode_types_1.CountryCode.SJ, /^\d{4}$/],
[postcode_types_1.CountryCode.SO, /^\d{5}$/],
[postcode_types_1.CountryCode.SZ, /^[HLMS]\d{3}$/],
[postcode_types_1.CountryCode.TC, /^TKCA 1ZZ$/],
[postcode_types_1.CountryCode.WF, /^986\d{2}$/],
[postcode_types_1.CountryCode.XK, /^\d{5}$/],
[postcode_types_1.CountryCode.YT, /^976\d{2}$/],
[postcode_types_1.CountryCode.GI, /^GX11 1AA/],
[postcode_types_1.CountryCode.BT, /^\d{5}/],
[postcode_types_1.CountryCode.AL, /^\d{4}/],
[postcode_types_1.CountryCode.CU, /^\d{5}/],
[postcode_types_1.CountryCode.UM, /^96898/],
[postcode_types_1.CountryCode.AI, /^(?:AI-)?2640/],
[postcode_types_1.CountryCode.AF, /^\d{4}/],
[postcode_types_1.CountryCode.SD, /^\d{5}/],
[postcode_types_1.CountryCode.VC, /^VC\d{4}/],
[postcode_types_1.CountryCode.TA, /^TDCU 1ZZ/],
[postcode_types_1.CountryCode.NA, /^\d{5}/],
[postcode_types_1.CountryCode.EH, /^\d{5}/],
[postcode_types_1.CountryCode.BL, /^9[78][01]\d{2}/],
[postcode_types_1.CountryCode.TZ, /^\d{4,5}/],
[postcode_types_1.CountryCode.AC, /^ASCN 1ZZ/],
[postcode_types_1.CountryCode.VG, /^VG\d{4}/],
[postcode_types_1.CountryCode.MZ, /^\d{4}/],
[postcode_types_1.CountryCode.MF, /^9[78][01]\d{2}/],
[postcode_types_1.CountryCode.MM, /^\d{5}/],
[postcode_types_1.CountryCode.SV, /^CP [1-3][1-7][0-2]\d/],
[postcode_types_1.CountryCode.IR, /^\d{5}-?\d{5}/],
[postcode_types_1.CountryCode.PE, /^[0-2]\d{4}$/],
[postcode_types_1.CountryCode.INTL, /^(?:[A-Z0-9]+([- ]?[A-Z0-9]+)*)?$/i],
[postcode_types_1.CountryCode.CO, /^(0[58]|1[135789]|2[0357]|4[147]|5[024]|6[368]|7[036]|8[1568]|9[4579])\d{4}$/],
]);