如何删除字符串中不在字母旁边的数字,例如
“13 Some Street,Some Place,PE15 0TZ”
在这种情况下,我想删除13只,而不是邮政编码中的数字。
“M1,Some Place,PE15 0TZ”
在上述情况下,它不会删除任何内容,因为所有数字都在字母旁边。
我发现很多代码可以从字符串中删除数字(.replace(/\d+/g, '')
),但没有任何代码可以考虑其邻居
答案 0 :(得分:4)
您可以在两侧使用字边界\b
并匹配一个或多个数字\d+
以仅选择13:
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