英国和海外邮政编码验证

时间:2017-05-09 10:06:28

标签: javascript jquery

我正在尝试验证英国和海外邮政编码。 英国邮政编码验证正在运作,但不在海外。是否有针对海外的特定正则表达式,或者可以使用我在jsfiddle代码中使用的正则表达式。

我已经完成了这篇文章 - https://stackoverflow.com/a/164994/2455424,并尝试使用以下正则表达式,但没有成功。

^(GIR ?0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]([0-9ABEHMNPRV-Y])?)|[0-9][A-HJKPS-UW]) ?[0-9][ABD-HJLNP-UW-Z]{2})$

所以我已经注释掉了这一行。

Jquery代码 -

 $('#testForm').on('submit', function() {
   var zip = $('#zip').val();
   zip = zip.replace(/\s/g, "");
   var regex = /[A-Z]{1,2}[0-9][0-9A-Z]?\s?[0-9][A-Z]{2}/gi;
   //var regex = ^(GIR ?0AA|[A-PR-UWYZ]([0-9]{1,2}|([A-HK-Y][0-9]([0-9ABEHMNPRV-Y])?)|[0-9][A-HJKPS-UW]) ?[0-9][ABD-HJLNP-UW-Z]{2})$;
   var resultzip = regex.test(zip);
   if (false === resultzip) {
     alert('The postcode is not valid.');
     return false;
   }
 });

演示 - https://jsfiddle.net/squidraj/q4ouLns7/5/

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

请尝试这个

var regex = /(((^[BEGLMNS][1-9]\d?) | (^W[2-9] ) | ( ^( A[BL] | B[ABDHLNRST] | C[ABFHMORTVW] | D[ADEGHLNTY] | E[HNX] | F[KY] | G[LUY] | H[ADGPRSUX] | I[GMPV] | JE | K[ATWY] | L[ADELNSU] | M[EKL] | N[EGNPRW] | O[LX] | P[AEHLOR] | R[GHM] | S[AEGKL-PRSTWY] | T[ADFNQRSW] | UB | W[ADFNRSV] | YO | ZE ) \d\d?) | (^W1[A-HJKSTUW0-9]) | (( (^WC[1-2]) | (^EC[1-4]) | (^SW1) ) [ABEHMNPRVWXY] ) ) (\s*)? ([0-9][ABD-HJLNP-UW-Z]{2})) | (^GIR\s?0AA)/;

答案 1 :(得分:0)

世界各地的邮政编码格式差异很大,有时格式看起来与其他有细微差别的国家类似,例如只在某些位置使用某些字符。

Frank's compulsive guide to addressing将包含有关地址和邮政编码格式的更多信息,而不是您需要的信息。

即使每个国家都有RegEx,RegEx也只会告诉您邮政编码是否“看起来”正确。要正确验证,您需要检查它是否存在于本地邮政管理局的数据库中。在英国,这将是皇家邮政的PAF数据库。