gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

postcode_regexes.go (4278B)


      1 package validator
      2 
      3 import "regexp"
      4 
      5 var postCodePatternDict = map[string]string{
      6 	"GB": `^GIR[ ]?0AA|((AB|AL|B|BA|BB|BD|BH|BL|BN|BR|BS|BT|CA|CB|CF|CH|CM|CO|CR|CT|CV|CW|DA|DD|DE|DG|DH|DL|DN|DT|DY|E|EC|EH|EN|EX|FK|FY|G|GL|GY|GU|HA|HD|HG|HP|HR|HS|HU|HX|IG|IM|IP|IV|JE|KA|KT|KW|KY|L|LA|LD|LE|LL|LN|LS|LU|M|ME|MK|ML|N|NE|NG|NN|NP|NR|NW|OL|OX|PA|PE|PH|PL|PO|PR|RG|RH|RM|S|SA|SE|SG|SK|SL|SM|SN|SO|SP|SR|SS|ST|SW|SY|TA|TD|TF|TN|TQ|TR|TS|TW|UB|W|WA|WC|WD|WF|WN|WR|WS|WV|YO|ZE)(\d[\dA-Z]?[ ]?\d[ABD-HJLN-UW-Z]{2}))|BFPO[ ]?\d{1,4}$`,
      7 	"JE": `^JE\d[\dA-Z]?[ ]?\d[ABD-HJLN-UW-Z]{2}$`,
      8 	"GG": `^GY\d[\dA-Z]?[ ]?\d[ABD-HJLN-UW-Z]{2}$`,
      9 	"IM": `^IM\d[\dA-Z]?[ ]?\d[ABD-HJLN-UW-Z]{2}$`,
     10 	"US": `^\d{5}([ \-]\d{4})?$`,
     11 	"CA": `^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][ ]?\d[ABCEGHJ-NPRSTV-Z]\d$`,
     12 	"DE": `^\d{5}$`,
     13 	"JP": `^\d{3}-\d{4}$`,
     14 	"FR": `^\d{2}[ ]?\d{3}$`,
     15 	"AU": `^\d{4}$`,
     16 	"IT": `^\d{5}$`,
     17 	"CH": `^\d{4}$`,
     18 	"AT": `^\d{4}$`,
     19 	"ES": `^\d{5}$`,
     20 	"NL": `^\d{4}[ ]?[A-Z]{2}$`,
     21 	"BE": `^\d{4}$`,
     22 	"DK": `^\d{4}$`,
     23 	"SE": `^\d{3}[ ]?\d{2}$`,
     24 	"NO": `^\d{4}$`,
     25 	"BR": `^\d{5}[\-]?\d{3}$`,
     26 	"PT": `^\d{4}([\-]\d{3})?$`,
     27 	"FI": `^\d{5}$`,
     28 	"AX": `^22\d{3}$`,
     29 	"KR": `^\d{3}[\-]\d{3}$`,
     30 	"CN": `^\d{6}$`,
     31 	"TW": `^\d{3}(\d{2})?$`,
     32 	"SG": `^\d{6}$`,
     33 	"DZ": `^\d{5}$`,
     34 	"AD": `^AD\d{3}$`,
     35 	"AR": `^([A-HJ-NP-Z])?\d{4}([A-Z]{3})?$`,
     36 	"AM": `^(37)?\d{4}$`,
     37 	"AZ": `^\d{4}$`,
     38 	"BH": `^((1[0-2]|[2-9])\d{2})?$`,
     39 	"BD": `^\d{4}$`,
     40 	"BB": `^(BB\d{5})?$`,
     41 	"BY": `^\d{6}$`,
     42 	"BM": `^[A-Z]{2}[ ]?[A-Z0-9]{2}$`,
     43 	"BA": `^\d{5}$`,
     44 	"IO": `^BBND 1ZZ$`,
     45 	"BN": `^[A-Z]{2}[ ]?\d{4}$`,
     46 	"BG": `^\d{4}$`,
     47 	"KH": `^\d{5}$`,
     48 	"CV": `^\d{4}$`,
     49 	"CL": `^\d{7}$`,
     50 	"CR": `^\d{4,5}|\d{3}-\d{4}$`,
     51 	"HR": `^\d{5}$`,
     52 	"CY": `^\d{4}$`,
     53 	"CZ": `^\d{3}[ ]?\d{2}$`,
     54 	"DO": `^\d{5}$`,
     55 	"EC": `^([A-Z]\d{4}[A-Z]|(?:[A-Z]{2})?\d{6})?$`,
     56 	"EG": `^\d{5}$`,
     57 	"EE": `^\d{5}$`,
     58 	"FO": `^\d{3}$`,
     59 	"GE": `^\d{4}$`,
     60 	"GR": `^\d{3}[ ]?\d{2}$`,
     61 	"GL": `^39\d{2}$`,
     62 	"GT": `^\d{5}$`,
     63 	"HT": `^\d{4}$`,
     64 	"HN": `^(?:\d{5})?$`,
     65 	"HU": `^\d{4}$`,
     66 	"IS": `^\d{3}$`,
     67 	"IN": `^\d{6}$`,
     68 	"ID": `^\d{5}$`,
     69 	"IL": `^\d{5}$`,
     70 	"JO": `^\d{5}$`,
     71 	"KZ": `^\d{6}$`,
     72 	"KE": `^\d{5}$`,
     73 	"KW": `^\d{5}$`,
     74 	"LA": `^\d{5}$`,
     75 	"LV": `^\d{4}$`,
     76 	"LB": `^(\d{4}([ ]?\d{4})?)?$`,
     77 	"LI": `^(948[5-9])|(949[0-7])$`,
     78 	"LT": `^\d{5}$`,
     79 	"LU": `^\d{4}$`,
     80 	"MK": `^\d{4}$`,
     81 	"MY": `^\d{5}$`,
     82 	"MV": `^\d{5}$`,
     83 	"MT": `^[A-Z]{3}[ ]?\d{2,4}$`,
     84 	"MU": `^(\d{3}[A-Z]{2}\d{3})?$`,
     85 	"MX": `^\d{5}$`,
     86 	"MD": `^\d{4}$`,
     87 	"MC": `^980\d{2}$`,
     88 	"MA": `^\d{5}$`,
     89 	"NP": `^\d{5}$`,
     90 	"NZ": `^\d{4}$`,
     91 	"NI": `^((\d{4}-)?\d{3}-\d{3}(-\d{1})?)?$`,
     92 	"NG": `^(\d{6})?$`,
     93 	"OM": `^(PC )?\d{3}$`,
     94 	"PK": `^\d{5}$`,
     95 	"PY": `^\d{4}$`,
     96 	"PH": `^\d{4}$`,
     97 	"PL": `^\d{2}-\d{3}$`,
     98 	"PR": `^00[679]\d{2}([ \-]\d{4})?$`,
     99 	"RO": `^\d{6}$`,
    100 	"RU": `^\d{6}$`,
    101 	"SM": `^4789\d$`,
    102 	"SA": `^\d{5}$`,
    103 	"SN": `^\d{5}$`,
    104 	"SK": `^\d{3}[ ]?\d{2}$`,
    105 	"SI": `^\d{4}$`,
    106 	"ZA": `^\d{4}$`,
    107 	"LK": `^\d{5}$`,
    108 	"TJ": `^\d{6}$`,
    109 	"TH": `^\d{5}$`,
    110 	"TN": `^\d{4}$`,
    111 	"TR": `^\d{5}$`,
    112 	"TM": `^\d{6}$`,
    113 	"UA": `^\d{5}$`,
    114 	"UY": `^\d{5}$`,
    115 	"UZ": `^\d{6}$`,
    116 	"VA": `^00120$`,
    117 	"VE": `^\d{4}$`,
    118 	"ZM": `^\d{5}$`,
    119 	"AS": `^96799$`,
    120 	"CC": `^6799$`,
    121 	"CK": `^\d{4}$`,
    122 	"RS": `^\d{6}$`,
    123 	"ME": `^8\d{4}$`,
    124 	"CS": `^\d{5}$`,
    125 	"YU": `^\d{5}$`,
    126 	"CX": `^6798$`,
    127 	"ET": `^\d{4}$`,
    128 	"FK": `^FIQQ 1ZZ$`,
    129 	"NF": `^2899$`,
    130 	"FM": `^(9694[1-4])([ \-]\d{4})?$`,
    131 	"GF": `^9[78]3\d{2}$`,
    132 	"GN": `^\d{3}$`,
    133 	"GP": `^9[78][01]\d{2}$`,
    134 	"GS": `^SIQQ 1ZZ$`,
    135 	"GU": `^969[123]\d([ \-]\d{4})?$`,
    136 	"GW": `^\d{4}$`,
    137 	"HM": `^\d{4}$`,
    138 	"IQ": `^\d{5}$`,
    139 	"KG": `^\d{6}$`,
    140 	"LR": `^\d{4}$`,
    141 	"LS": `^\d{3}$`,
    142 	"MG": `^\d{3}$`,
    143 	"MH": `^969[67]\d([ \-]\d{4})?$`,
    144 	"MN": `^\d{6}$`,
    145 	"MP": `^9695[012]([ \-]\d{4})?$`,
    146 	"MQ": `^9[78]2\d{2}$`,
    147 	"NC": `^988\d{2}$`,
    148 	"NE": `^\d{4}$`,
    149 	"VI": `^008(([0-4]\d)|(5[01]))([ \-]\d{4})?$`,
    150 	"VN": `^[0-9]{1,6}$`,
    151 	"PF": `^987\d{2}$`,
    152 	"PG": `^\d{3}$`,
    153 	"PM": `^9[78]5\d{2}$`,
    154 	"PN": `^PCRN 1ZZ$`,
    155 	"PW": `^96940$`,
    156 	"RE": `^9[78]4\d{2}$`,
    157 	"SH": `^(ASCN|STHL) 1ZZ$`,
    158 	"SJ": `^\d{4}$`,
    159 	"SO": `^\d{5}$`,
    160 	"SZ": `^[HLMS]\d{3}$`,
    161 	"TC": `^TKCA 1ZZ$`,
    162 	"WF": `^986\d{2}$`,
    163 	"XK": `^\d{5}$`,
    164 	"YT": `^976\d{2}$`,
    165 }
    166 
    167 var postCodeRegexDict = map[string]*regexp.Regexp{}
    168 
    169 func init() {
    170 	for countryCode, pattern := range postCodePatternDict {
    171 		postCodeRegexDict[countryCode] = regexp.MustCompile(pattern)
    172 	}
    173 }