Javascript正则表达式:如何删除特定字符周围的所有空格?

Javascript正则表达式:如何删除特定字符周围的所有空格?,javascript,regex,Javascript,Regex,可能我做错了什么,我找到了一个正则表达式来实现和中所需的替换,但将其应用于javascript失败 例如: text(4 |-4 | 1“测试”)[0 50 90] 应清洁至: text(4 |-4 | 1“测试”)[0 50 90] 如您所见,我删除了括号和|前后的所有空格 到目前为止,我的代码是: // remove whitespaces around brackets [] text = text.replace(/\s*\[\s*(.*?)\s*]\s*

可能我做错了什么,我找到了一个正则表达式来实现和中所需的替换,但将其应用于javascript失败

例如:

text(4 |-4 | 1“测试”)[0 50 90]

应清洁至:

text(4 |-4 | 1“测试”)[0 50 90]

如您所见,我删除了括号和|前后的所有空格

到目前为止,我的代码是:

        // remove whitespaces around brackets []
        text = text.replace(/\s*\[\s*(.*?)\s*]\s*/g, '[$1]');
        // remove whitespaces around brackets ()
        text = text.replace(/\s*\(\s*(.*?)\s*\)\s*/g, '($1)');
        // remove all whitespaces around | (FAILS)
        // text = text.replace(/\s*\|\s*(.*?)\s*\|\s*/g, '|$1|');
        // text = text.replace(/\s*|\s*/, '$1');
看起来也太复杂了

我想知道每个符号的正则表达式


并非所有替换都在一个正则表达式中,为了学习,我希望每行替换一个。诀窍是正确地转义保留字符,因此单个
[
变为
\[
,依此类推。管道也是一个保留字符,因此您需要执行相同的操作:

var-example=“text(4 |-4 | 1\”test\”[0 50 90]”;
example=example.replace(//\s*([\(\)])\s*/g,$1');//删除()
example=example.replace(/\s*([\[\]])\s*/g,$1');//删除[]
example=example.replace(/\s*([\\124;])\ s*/g,$1');//删除|
//或者一次删除所有字符
example=example.replace(/\s*([\(\)\[\]\\\\\\124;])\ s*/g,“$1”)

警报(示例)
这将实现以下功能:

var text='text(4 |-4 | 1“测试”)[0 50 90];
text=text.replace(/\s*([|()[\]])\s*/g,$1');

警报(文本)
你可以试试。你不需要在正则字符类中转义
[
()
。我同意你@Cerbrus的观点,但似乎更容易记住总是转义特殊字符,转义它们不会造成伤害。你不需要转义“[”。谢谢,但每个字符(不是一个字符)会是什么.所以每次替换一行代码?而且我刚刚意识到它会删除换行符。为什么?因为
\s
表示“全部”空白,我马上更新我的答案。