通过在字符串中查找邮政编码来分离字符串



所以我有一个字段可以有这些类型,例如

Bakersfieldroad 1 344 75 Newcastle
South Matesroad 345 356 72 Essex
Muckley-buckleyroad 23 435 72 London

在这里,我想在地址和邮政编码之间放一个,,所以我需要弄清楚邮政编码何时开始。有没有什么好方法可以做到这一点,因为地址可能会有很大的差异。所以我想重点关注邮政编码,因为它总是3个数字后面跟着一个空格,然后是2个数字

您可以将.replace()与正则表达式一起使用来捕获邮政编码,并将其替换为用引号括起来的自身,如:

const str = `Bakersfieldroad 1 344 75 Newcastle
South Matesroad 345 356 72 Essex
Muckley-buckleyroad 23 435 72 London`;
const res = str.replace(/s(d{3}sd{2})s/g, ", $1, ");
console.log(res);

上面的正则表达式将匹配空白字符(即:空格(s,然后将接下来的三位数字、一个空格和接下来的两位数字(即邮政编码(分组到捕获组(d{3}sd{2})中,然后还将使用s匹配邮政编码后的空格。然后,您可以使用$1在替换参数中引用捕获组。

最新更新