在JavaScript中使用正则表达式过滤字符串中的逗号和空格

在JavaScript中使用正则表达式过滤字符串中的逗号和空格,javascript,regex,Javascript,Regex,我想使用正则表达式筛选字符串,以便: 多个空间将替换为单个空间 逗号前后的所有空格均替换为单个逗号 用空格删除多个逗号 删除起始和结束逗号 样本输入: ,这是一个,,,测试,用于在js 123中查找正则表达式 预期输出: “这是一个在js 123中查找正则表达式的测试” 到目前为止我所尝试的: 到目前为止,我已经提出了一个有效的解决方案 var str=“,这是一个,,,测试,用于在js 123中查找正则表达式,”; str=str.replace(/+/g,“”)//将多个空间替换

我想使用正则表达式筛选字符串,以便:

  • 多个空间将替换为单个空间
  • 逗号前后的所有空格均替换为单个逗号
  • 用空格删除多个逗号
  • 删除起始和结束逗号

样本输入:

,这是一个,,,测试,用于在js 123中查找正则表达式


预期输出:

“这是一个在js 123中查找正则表达式的测试”


到目前为止我所尝试的:

到目前为止,我已经提出了一个有效的解决方案

var str=“,这是一个,,,测试,用于在js 123中查找正则表达式,”;
str=str.replace(/+/g,“”)//将多个空间替换为单个空间
str=str.replace(/\s*,\s*/g,“,”)//用单个逗号替换逗号前后的空格
str=str.replace(/,+/g,“,”)//用单个逗号删除多个逗号
str=str.replace(/^,|,$/g,”)//删除起始和结束逗号

console.log(str)首先,删除逗号旁边的所有空格:

replace(/ *, */g, ’,’)
第二,用单逗号替换所有连续逗号,用单空格替换所有连续空格:

replace(/,+/g, ‘,’)
replace(/ +/g, ‘ ‘)
最后,删除前导和尾随逗号:

replace(/^,/, ‘’)
replace(/,$/, ‘’)
var str=“,这是一个,,,测试,用于在js 123中查找正则表达式,”;
str=str.replace(/^[\s,]+|[\s,]+$\s*(\s |,)[\s,]*/g,“$1”);

console.log(str)到目前为止您尝试了什么?请在中添加一些代码。我们刚刚找到了一个解决办法。下面提供了它,希望进一步优化它。我编辑了你的问题,如果你有答案的解决方案,请在下面的答案中发布,如果你有到目前为止的代码(不是答案),请编辑你的问题,不要将其添加为答案。谢谢,我已经批准了你的编辑。它解释得更详细。谢谢你,@Stephan T。或者一步到位
.replace(/^[\s,]+|[\s,]+$\s*(\s |,)[\s,]*/g,“$1”)