javascript - 正则表达式 : matching specific character within a context

标签 javascript regex

这是一个测试字符串:

    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/

相关文章:

javascript - keyup 触发保存时保持光标位置的最佳实践

MySQL Regexp匹配图片链接

regex - 正则表达式获取长度为n的所有子串

asp.net-mvc - ASP.NET MVC 2 - 一个属性上的多个正则表达式

javascript - 向下滑动事件未触发 - ionic 框架

javascript - 如何使用jquery检查父元素的类

javascript - 使用正则表达式在 tampermonkey 中自动下载 mp3

regex - jq 在第一个之后删除空格

javascript - 无法在 React Native 中使用正则表达式从字符串中获取匹配结果,但能够在 Crome 控制台中获取它

javascript - 过滤对象数组并设置状态数组变量