用javascript用逗号替换空格

win*_*sun 4 javascript jquery

我有一个带有关键字的字符串,我需要检查此字符串是否包含空格,如果是,则用逗号替换它们.
字符串可以是"keyword1 keyword2,keyword3 keyword4,keyword5"
或任何其他空格和逗号组合.最终结果应该是由逗号分隔的一串关键字,没有任何间距,
如下面的"keyword1,keyword2,keyword3,keyword4,keyword5".
为此我尝试$("#strId").split('').join(',')
这样做完成了这项工作,但我注意到如果我有一个字符串,每个关键字之间包含多个空格,我会得到多个逗号:
原始字符串=(keyword1 keyword2 keyword3)
结果字符串=(keyword1 ,, ,,,, keyword2 ,,,,,, keyword3)
我需要它只用每个单词之间的单个逗号.我将感谢你对这个问题的帮助

谢谢

Gum*_*mbo 23

拆分任何空格和逗号序列:

str.split(/[ ,]+/).join(',')
Run Code Online (Sandbox Code Playgroud)

您可能还想使用filter删除空字符串:

str.split(/[ ,]+/).filter(function(v){return v!==''}).join(',')
Run Code Online (Sandbox Code Playgroud)

另一种解决方案是匹配任何不包含空格或逗号的序列:

str.match(/[^ ,]+/g).join(',')
Run Code Online (Sandbox Code Playgroud)


nnn*_*nnn 9

使用该String.replace()方法.

var newString = yourString.replace(/[ ,]+/g, ",");
Run Code Online (Sandbox Code Playgroud)

这表示用一个逗号替换一行中的一个或多个空格或逗号的任何序列,因此您可以使用逗号在其周围有空格的字符串"test, test,test test test , test".

(注:如果你想允许不仅仅是一个空间的使用其他空白字符\s在正则表达式:/[\s,]+/g)