我正在尝试使用 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"))