用javascript用逗号替换空格

时间:2012-01-29 12:02:54

标签: javascript jquery

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

谢谢

6 个答案:

答案 0 :(得分:21)

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

str.split(/[ ,]+/).join(',')

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

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

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

str.match(/[^ ,]+/g).join(',')

答案 1 :(得分:9)

使用String.replace() method

var newString = yourString.replace(/[ ,]+/g, ",");

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

(注意:如果您想在正则表达式中使用\s以外的其他空白字符,请使用/[\s,]+/g

答案 2 :(得分:2)

alert("test test, test".replace(/[ ,]+/g, ","))

http://jsfiddle.net/yeefR/

干杯!

答案 3 :(得分:1)

这应该可以正常使用正则表达式并处理任意数量的空格:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<div id="strId">keyword1 keyword2 ,keyword3 keyword4,keyword5</div>
<script>

var arr = $("#strId").html().split(/\s+,|\s+/).join(',');
alert(arr);

</script>

另外,只是FYI:split()是一个javascript函数,并且在没有jquery的情况下工作正常。

答案 4 :(得分:1)

这没有使用过滤器

正常工作
var input = $("#seperate").val();
var output = input.split(" ").join(';');

答案 5 :(得分:0)

您可以轻松使用replace方法表单字符串。你不必使用jQuery看看http://w3schools.com/jsref/jsref_replace.asp