从字符串中删除不在字母旁边的数字

时间:2018-04-27 12:20:25

标签: javascript regex

如何删除字符串中不在字母旁边的数字,例如

  

“13 Some Street,Some Place,PE15 0TZ”

在这种情况下,我想删除13只,而不是邮政编码中的数字。

  

“M1,Some Place,PE15 0TZ”

在上述情况下,它不会删除任何内容,因为所有数字都在字母旁边。

我发现很多代码可以从字符串中删除数字(.replace(/\d+/g, '')),但没有任何代码可以考虑其邻居

2 个答案:

答案 0 :(得分:4)

您可以在两侧使用字边界\b并匹配一个或多个数字\d+以仅选择13:

\b\d+\b

const strings = [
  "13 Some Street, Some Place, PE15 0TZ",
  "M1, Some Place, PE15 0TZ",
  "Some Street, Some Place, 15 PE15 0TZ 16",
];
let pattern = /\b\d+\b/g;

strings.forEach((s) => {
  console.log(s.replace(pattern, ""));
});

答案 1 :(得分:2)

使用以下正则表达式来测试数字是否被空格或字符串的开头/结尾包围:

supressWarnings()



/(^|\s)\d+(\s|$)/g