如果/否则提取部分英国邮政编码



我正在尝试使用 if/else 从 javascript 中的完整邮政编码中提取英国邮政编码的第一部分

基本上,如果邮政编码是格式;

AB99 9CD它需要返回AB

A9 9BC它需要返回A

A99 9BC它需要返回A

AB9C 9DE它需要返回AB.

我想尝试一下

if (fieldname == LETTER1 LETTER2 NUM NUM NUM LETTER3 LETTER 4) 
return LETTER 1 LETTER 2;

依此类推,然后使用 else 作为错误消息,以便它识别格式并返回前一两个字母,但不知道要使用什么代码。

根据维基百科关于英国邮政编码的条目,以下正则表达式可用于验证英国邮政编码:

^[A-Z]{1,2}[0-9][A-Z0-9]? ?[0-9][A-Z]{2}$

使用此功能以及捕获组将为您提供英国邮政编码中外部组的"区域"部分:

("EC1A 1BB").match(/^([A-Z]{1,2})[0-9][A-Z0-9]? ?[0-9][A-Z]{2}$/)[1]
// Gives "EC"

您可以使用正则表达式来执行此操作:

var str1 = 'AB99 9CD';
var str2 = 'A9 9BC';
var str3 = 'A99 9BC';
var str4 = 'AB9C 9DE';
var pattern = /^([a-zA-Z]+)/;
console.log('Letters 1:', str1.match(pattern)[0]);
console.log('Letters 2:', str2.match(pattern)[0]);
console.log('Letters 3:', str3.match(pattern)[0]);
console.log('Letters 4:', str4.match(pattern)[0]);


^的意思是:一开始。

()的意思是:一个组。

[a-zA-Z]的意思是:接受字母字符。

+在这种情况下,这意味着:[]内的所有内容都可以被接受一次或多次。

首先使用函数split("你的条件"(拆分您的地址。然后,检查第一个字符。如果是带有函数的非数字isNaN()

function Verify(address) {
var arrAdd = address.split(" ")

if (isNaN(arrAdd[0][0])) {
if (isNaN(arrAdd[0][1]))
return arrAdd[0]
else
return arrAdd[0][0]
}
}
console.log(Verify("A9 BBX"))

最新更新