如何用Java验证英国邮政编码?

时间:2014-11-25 18:35:27

标签: java validation if-statement postal-code

程序中的一个功能是用户输入其邮政编码。到目前为止,我有:

if ( postcode != //SOMETHING// )
{
    JOptionPane.showMessageDialog(this, "Not UK Postcode", "Postcode must be a valid UK postcode", jOptionPane.ERROR_MESSAGE);
}

我会在if语句中添加什么来检查输入的邮政编码是否是有效的英国邮政编码?

2 个答案:

答案 0 :(得分:5)

有一些特殊的代码,例如GIR 0AA和SAN TA1,这些代码在之前给出的格式中没有被提及过。

字母J从未被发现为前两个字母之一。字母Q,V和X永远不会在邮政编码的第一个位置找到。在第二个位置没有找到字母I和Z(单个邮政编码GIR 0AA除外)。如果第三个位置是字母,则找不到字母I,L,O,Q和Z.只有字母A,B,E,H,M,N,P,R,V,W,X和Y可以出现在第四位置。在空格后的邮政编码部分,从未找到字母C,I,K,M,O和V.

验证当前英国邮政编码的正则表达式是:

\ A((GIR 0AA)|(SAN TA1)| [AI | KP | RU | W | YZ] 0-9 [0-9] [AB | DH | J | L | N | PU | WZ] [AB | DH |百灵| L | N | PU | WZ] | [AI | KP | RU | W | YZ] [0-9] 0-9 [0-9] [AB | DH |百灵| L | N | PU | WZ] [AB | DH |百灵| L | N | PU | WZ] | [AI | KP | RU | W | YZ] [0-9] AH | JK | MN | P | RY [0-9 ] [AB | DH |百灵| L | N | PU | WZ] [AB | DH |百灵| L | N | PU | WZ] | [AI | KP | RU | W | YZ] [AH | KP | RU | W | Y] 0-9 [0-9] [AB | DH |百灵| L | N | PU | WZ] [AB | DH |百灵| L | N | PU | WZ] | [AI | KP | RU | W | YZ] [AH | KP | RU | W | Y] [0-9] 0-9 [0-9] [AB | DH |百灵| L | N | PU | WZ] [AB | DH |百灵|大号| N | PU | WZ] | [AI | KP | RU | W | YZ] [AH | KP | RU | W | Y] [0-9] AH | JK | MN | P | RY [0-9] [AB | DH |百灵| L | N | PU | WZ] [AB | DH |百灵| L | N | PU | WZ])\ž

您可以在http://www.grcdi.nl/gsb/united%20kingdom.html

找到有关英国邮政编码的更多信息

答案 1 :(得分:0)

有很多关于此的信息,包括:

但考虑到这些因素,英国有6种可能的邮政编码格式:

A9 9AA
A9A 9AA
A99 9AA
AA9 9AA
AA9A 9AA
AA99 9AA

您可以通过多种方式对其进行验证 - 您需要提供更多信息来准确解释您所追求的内容。

语法验证

我们可以使用正则表达式来验证邮政编码看起来像邮政编码。以下内容应该有效。它允许6个值。在线再次有更复杂/完整的例子 - 取决于你所追求的,。

^[A-Z]{1,2}[0-9R][0-9A-Z]?[0-9][ABD-HJLNP-UW-Z]{2}$

验证

仅仅因为邮政编码看起来像邮政编码,并不意味着它是邮政编码。如果您尝试捕获完整地址或确保用户输入的邮政编码确实存在,您可以使用皇家邮政PAF文件或第三方帮助您捕获完整的地址。正确的地址(许多可用,包括http://www.qas.co.uk/knowledge-centre/product-information/address-postcode-finder.htm(我的公司))。