Javascript正则表达式:如何删除特定字符周围的所有空格?
可能我做错了什么,我找到了一个正则表达式来实现和中所需的替换,但将其应用于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*
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
表示“全部”空白,我马上更新我的答案。