22

我有一个字符串

var str=" , this,  is a ,,, test string , , to find regex,,in js.  , ";

其中字符串的开头,中间和结尾有多个空格,带逗号。我需要这个字符串

var str="this is a test string to find regex in js.";

我在论坛中发现了许多正则表达式,分别删除空格、逗号,但我无法加入它们以删除两者。

如果可能,请解释正则表达式语法。

提前致谢

4

4 回答 4

40

您可以用空格替换每个空格和逗号,然后修剪那些尾随空格:

var str=" , this,  is a ,,, test string , , to find regex,,in js.  , ";
res = str.replace(/[, ]+/g, " ").trim();

jsfiddle 演示

于 2013-10-08T11:02:02.423 回答
5

您可以为此使用 reg ex

/[,\s]+|[,\s]+/g

var str= "your string here";
//this will be new string after replace
str = str.replace(/[,\s]+|[,\s]+/g, 'your string here');

正则表达式解释和演示

于 2013-10-08T11:02:36.190 回答
4

尝试这样的事情:

var new_string = old_string.replace(/[, ]+/g,' ').trim();

正则表达式只是[, ]+我们将其分解\s为任何空格字符的意思,并且,是文字逗号。这[]是一个字符集(想想数组),+表示一个或多个匹配项。

我们在/g末尾添加 a 以便它进行全局搜索和替换,否则它只会为一个匹配项执行此操作。

于 2013-10-08T11:01:25.510 回答
1

你应该可以使用

str.replace(/,/g," ");

'g' 是关键,您可能需要使用[,]

于 2013-10-08T11:03:20.680 回答