这是一个测试字符串:
something { some words };
我需要匹配 JavaScript 中“{”和“}”字符之间的所有空格(以便稍后删除,即使用“str.replace()”函数将它们替换为空字符)。 在这个例子中,我应该匹配 3 个空格(一个在“some”之前,一个在“some 和“words”之间,一个在“words”之后)。 我研究了几个类似的问题以及前瞻和后瞻组,但我不知道如何实现。
你能帮我吗?
到目前为止,我只能匹配第一个空格字符:https://regex101.com/r/2KW646/2
编辑:我使用的浏览器支持向前查找和向后查找。
删除匹配的空格后,输出应该是:
something {somewords};
最佳答案
您可以不使用正则表达式
来完成此操作:
const Fn = s => {
let r = '', skip_space;
for (let c of s) {
if (c === '{') skip_space = !0;
else if (c === '}') skip_space = !1;
if (c !== ' ' || !skip_space) r += c;
}
return r;
}
console.log(Fn('something { some words };'))
或者使用简单的替换
:
const Fn = s => s.replace(
/([^{]+)({[^}]+})/,
(_, m1, m2) => m1 + m2.replace(/\s+/g, '')
);
console.log(Fn('something { some words };'))
关于javascript - 正则表达式 : matching specific character within a context,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60779539/