我在做什么:
> ' { 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服务器有关。 ;-)
答案 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
允许您使用此表达式。