1 1AD","pattern":"^IM\\d[\\dA-Z]?[ ]?\\d[ABD-HJLN-UW-Z]{2}$"}},"IN":{"pattern_1":{"example":"123456","pattern":"^[0-9]{6}$"}},"IO":{"pattern_1":{"example":"BBND 1ZZ","pattern":"^BBND 1ZZ$"}},"IS":{"pattern_1":{"example":"123","pattern":"^[0-9]{3}$"}},"IQ":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"IT":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"JE":{"pattern_1":{"example":"JE2 4PJ","pattern":"^[jJ][eE][1-5]{1}\\s?[0-9]{1}[a-zA-Z]{2}$"}},"JO":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"JP":{"pattern_1":{"example":"123-4567","pattern":"^[0-9]{3}-[0-9]{4}$"},"pattern_2":{"example":"1234567","pattern":"^[0-9]{7}$"}},"KE":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"KG":{"pattern_1":{"example":"123456","pattern":"^[0-9]{6}$"}},"KR":{"pattern_1":{"example":"123-456","pattern":"^[0-9]{3}-[0-9]{3}$"},"pattern_2":{"example":"12345","pattern":"^[0-9]{5}$"},"pattern_3":{"example":"123456","pattern":"^\\d{6}$"}},"KH":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"},"pattern_2":{"example":"123456","pattern":"^\\d{6}$"}},"KW":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"KZ":{"pattern_1":{"example":"123456","pattern":"^[0-9]{6}$"}},"LA":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"LB":{"pattern_1":{"example":"1234 5678","pattern":"^(\\d{4}([ ]?\\d{4})?)?$"}},"LI":{"pattern_1":{"example":"1234","pattern":"^[0-9]{4}$"}},"LK":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"LT":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"},"pattern_2":{"example":"LT-12345","pattern":"^LT-\\d{5}$"}},"LU":{"pattern_1":{"example":"1234","pattern":"^[0-9]{4}$"}},"LV":{"pattern_1":{"example":"1234","pattern":"^[0-9]{4}$"},"pattern_2":{"example":"LV-1234","pattern":"^LV-\\d{4}$"}},"MA":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"MC":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"MD":{"pattern_1":{"example":"1234","pattern":"^[0-9]{4}$"},"pattern_2":{"example":"MD-1234","pattern":"^MD-\\d{4}$"},"pattern_3":{"example":"MD1234","pattern":"^MD\\d{4}$"}},"ME":{"pattern_1":{"example":"81101","pattern":"^8\\d{4}$"}},"MG":{"pattern_1":{"example":"123","pattern":"^[0-9]{3}$"}},"MH":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"MK":{"pattern_1":{"example":"1234","pattern":"^[0-9]{4}$"},"pattern_2":{"example":"MK-1234","pattern":"^MK-\\d{4}$"}},"MN":{"pattern_1":{"example":"123456","pattern":"^[0-9]{6}$"}},"MP":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"MS":{"pattern_1":{"example":"MSR1250","pattern":"^MSR\\s?\\d{4}$"}},"MQ":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"MT":{"pattern_1":{"example":"ABC 1234","pattern":"^[a-zA-Z]{3}\\s[0-9]{4}$"},"pattern_2":{"example":"ABC 123","pattern":"^[a-zA-Z]{3}\\s[0-9]{3}$"},"pattern_3":{"example":"ABC 12","pattern":"^[a-zA-Z]{3}\\s[0-9]{2}$"}},"MU":{"pattern_1":{"example":"A1201 or 80110","pattern":"^([AR]|[0-9])\\d{4,5}$"}},"MV":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"},"pattern_2":{"example":"1234","pattern":"^[0-9]{4}$"}},"MX":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"},"pattern_2":{"example":"12345-6789","pattern":"^\\d{5}-\\d{4}$"}},"MY":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"NC":{"pattern_1":{"example":"98800","pattern":"^988\\d{2}$"}},"NE":{"pattern_1":{"example":"1234","pattern":"^\\d{4}$"}},"NF":{"pattern_1":{"example":"2899","pattern":"^2899$"}},"NG":{"pattern_1":{"example":"123456","pattern":"^(\\d{6})?$"}},"NI":{"pattern_1":{"example":"22500","pattern":"^\\d{5}$"}},"NL":{"pattern_1":{"example":"1234 AB\/1234AB","pattern":"^[1-9][0-9]{3}\\s?[a-zA-Z]{2}$"}},"NO":{"pattern_1":{"example":"1234","pattern":"^[0-9]{4}$"}},"NP":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"NZ":{"pattern_1":{"example":"1234","pattern":"^\\d{4}$"}},"OM":{"pattern_1":{"example":"PC 123 or 123","pattern":"^(PC )?\\d{3}$"}},"PA":{"pattern_1":{"example":"1234","pattern":"^\\d{4}$"}},"PF":{"pattern_1":{"example":"98701","pattern":"^987\\d{2}$"}},"PG":{"pattern_1":{"example":"123","pattern":"^\\d{3}$"}},"PH":{"pattern_1":{"example":"1234","pattern":"^[0-9]{4}$"}},"PK":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"PL":{"pattern_1":{"example":"12-345","pattern":"^[0-9]{2}-[0-9]{3}$"},"pattern_2":{"example":"12345","pattern":"^\\d{5}$"}},"PM":{"pattern_1":{"example":"97500","pattern":"^9[78]5\\d{2}$"}},"PN":{"pattern_1":{"example":"PCRN 1ZZ","pattern":"^PCRN 1ZZ$"}},"PR":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"PT":{"pattern_1":{"example":"1234","pattern":"^[0-9]{4}$"},"pattern_2":{"example":"1234-567","pattern":"^[0-9]{4}-[0-9]{3}$"}},"PW":{"pattern_1":{"example":"96939 or 96940","pattern":"^(?:96939|96940)$"}},"PY":{"pattern_1":{"example":"1234","pattern":"^\\d{4}$"}},"RE":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"RO":{"pattern_1":{"example":"123456","pattern":"^[0-9]{6}$"},"pattern_2":{"example":"123456","pattern":"^\\d{6}$"},"pattern_3":{"example":"RO-123456","pattern":"^RO-\\d{6}$"}},"RS":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"},"pattern_2":{"example":"123456","pattern":"^\\d{6}$"}},"RU":{"pattern_1":{"example":"123456","pattern":"^[0-9]{6}$"}},"SA":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"SE":{"pattern_1":{"example":"123 45","pattern":"^[0-9]{3}\\s[0-9]{2}$"},"pattern_2":{"example":"12345","pattern":"^\\d{5}$"}},"SG":{"pattern_1":{"example":"123456","pattern":"^[0-9]{6}$"}},"SI":{"pattern_1":{"example":"1234","pattern":"^[0-9]{4}$"},"pattern_2":{"example":"SI-1234","pattern":"^SI-\\d{4}$"}},"SK":{"pattern_1":{"example":"123 45","pattern":"^[0-9]{3}\\s[0-9]{2}$"},"pattern_2":{"example":"12345","pattern":"^\\d{5}$"}},"SH":{"pattern_1":{"example":"ASCN 1ZZ","pattern":"^(ASCN|STHL) 1ZZ$"}},"SJ":{"pattern_1":{"example":"1234","pattern":"^\\d{4}$"}},"SM":{"pattern_1":{"example":"47890","pattern":"^4789\\d$"}},"SN":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"SO":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"SZ":{"pattern_1":{"example":"A123","pattern":"^[a-zA-Z]{1}[0-9]{3}$"}},"TC":{"pattern_1":{"example":"TKCA 1ZZ","pattern":"^TKCA 1ZZ$"}},"TH":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"TJ":{"pattern_1":{"example":"123456","pattern":"^[0-9]{6}$"}},"TM":{"pattern_1":{"example":"123456","pattern":"^[0-9]{6}$"}},"TN":{"pattern_1":{"example":"1234","pattern":"^\\d{4}$"}},"TR":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"TT":{"pattern_1":{"example":"120110","pattern":"^\\d{6}$"}},"TW":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"},"pattern_2":{"example":"123","pattern":"^[0-9]{3}$"},"pattern_3":{"example":"123-45","pattern":"^\\d{3}-\\d{2}$"}},"UA":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"US":{"pattern_1":{"example":"12345-6789","pattern":"^[0-9]{5}\\-[0-9]{4}$"},"pattern_2":{"example":"12345","pattern":"^[0-9]{5}$"}},"UY":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"UZ":{"pattern_1":{"example":"123456","pattern":"^[0-9]{6}$"}},"VA":{"pattern_1":{"example":"00120","pattern":"^00120$"}},"VE":{"pattern_1":{"example":"1234","pattern":"^\\d{4}$"}},"VI":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"WF":{"pattern_1":{"example":"98601","pattern":"^986\\d{2}$"}},"XK":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"XY":{"pattern_1":{"example":"12345","pattern":"^[0-9]{5}$"}},"YT":{"pattern_1":{"example":"97601","pattern":"^976\\d{2}$"}},"ZA":{"pattern_1":{"example":"1234","pattern":"^[0-9]{4}$"}},"ZM":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"IR":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"},"pattern_2":{"example":"1234567890","pattern":"^\\d{10}$"}},"AL":{"pattern_1":{"example":"1001","pattern":"^\\d{4}$"},"pattern_2":{"example":"12345","pattern":"^\\d{5}$"}},"CO":{"pattern_1":{"example":"123456","pattern":"^\\d{6}$"},"pattern_2":{"example":"12345","pattern":"^\\d{5}$"}},"VN":{"pattern_1":{"example":"123456","pattern":"^\\d{6}$"},"pattern_2":{"example":"12345","pattern":"^\\d{5}$"}},"AF":{"pattern_1":{"example":"1234","pattern":"^\\d{4}$"}},"AO":{"pattern_1":{"example":"123456","pattern":"^\\d{6}$"}},"BJ":{"pattern_1":{"example":"123456","pattern":"^\\d{6}$"}},"BF":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"BI":{"pattern_1":{"example":"123456","pattern":"^\\d{6}$"}},"CM":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"CF":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"TD":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"KM":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"CD":{"pattern_1":{"example":"123456","pattern":"^\\d{6}$"}},"CG":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"CI":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"DJ":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"TL":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"SV":{"pattern_1":{"example":"1234","pattern":"^\\d{4}$"}},"GQ":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"ER":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"GA":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"GM":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}},"GD":{"pattern_1":{"example":"12345","pattern":"^\\d{5}$"}}};
hyva.formValidation.addRule('postcode', (postCode, options, field, context) => {
context.removeMessages(field, 'postcode-warning')
const countryId = (context.fields['country_id'] && context.fields['country_id'].element.value),
validatedPostCodeExamples = [],
countryPostCodeSpecs = countryId && postCodeSpecs ? postCodeSpecs[countryId] : false;
if (! postCode || ! countryPostCodeSpecs) return true;
for (const postCodeSpec of Object.values(countryPostCodeSpecs)) {
if (new RegExp(postCodeSpec.pattern).test(postCode)) return true;
validatedPostCodeExamples.push(postCodeSpec.example);
}
if (validatedPostCodeExamples) {
context.addMessages(field, 'postcode-warning', [
'Provided\u0020Zip\u002FPostal\u0020Code\u0020seems\u0020to\u0020be\u0020invalid.',
'\u0020Example\u003A\u0020' + validatedPostCodeExamples.join('; ') + '. ',
'If\u0020you\u0020believe\u0020it\u0020is\u0020the\u0020right\u0020one\u0020you\u0020can\u0020ignore\u0020this\u0020notice.'
]);
}
return true;
});
})