目标:剥离某些字符旁边的空白

时间:2017-12-07 23:54:20

标签: javascript regex replace

我在做什么:

> ' { foo ( bar: 8 ) { baz: 9 fun: bun } } '.replace(/\s[{}():]\s/g, '');
< "foobar: 8{ baz: 9 fun: bun} "

我想做什么:

> ???
< "{foo(bar:8){baz:9 fun:bun}}"

这与压缩查询以从客户端发送到graphql服务器有关。 ;-)

2 个答案:

答案 0 :(得分:1)

我担心这里的正则表达不适合你的需要,一个合适的图书馆会更合适。

同时,您可以尝试.replace(/\B | \B/, ""),但肯定不会涵盖所有情况,加上肯定会打破一些请求。这至少涵盖了你的例子。

答案 1 :(得分:1)

您必须在正则表达式中使用捕获组来替换没有空格的字符:

> '{ foo ( bar: 8 ) { baz: 9 fun: bun } } '.replace(/\s*(\[|\]|\{|\}|\(|\)|\:)\s*/g, '$1')
< "{foo(bar:8){baz:9 fun:bun}}"

括号捕获表达式,$1允许您使用此表达式。