2012-01-29 133 views
1

我有一个带关键字的字符串,我需要检查这个字符串是否包含空格,如果是,请用逗号替换它们。
该字符串可以是类似于“keyword1 keyword2,keyword3 keyword4,keyword5”
或空格和逗号的任何其他组合。 最终结果应该是以逗号分隔的一串关键词,不带任何间距
就像下面的“keyword1,keyword2,keyword3,keyword4,keyword5”
为我试图做$("#strId").split('').join(',')
该做的工作,但我发现,如果我有一个包含每个关键字之间更多然后一个空格的字符串我有多个逗号这样的:
原始字符串=( - 关键字KEYWORD3)
结果字符串=(关键字1 ,,,,,,关键字2 ,,,,,,关键字3)
,我需要它将在每个单词之间使用单个逗号。 我会感谢帮助在这个问题上用javascript替换逗号空格

感谢

+3

采取此链接一看做工精细。com/questions/1665829/remove-unwanted-commas-in-javascript – TwTw 2012-01-29 12:08:07

+0

jQuery是一个需求还是上面的链接适合您的需求? – casperOne 2012-01-30 13:55:34

回答

14

分割上的空格和逗号任何序列:

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

你可能也想用filter删除空字符串:

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

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

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

感谢第一个str.split(/ [,] + /)。join(',')的工作就像一个魅力 – 2012-01-29 12:28:10

8

使用String.replace() method

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

此说,与一个逗号来替换一个或多个空格或逗号的任何顺序排成一列,所以你覆盖的字符串,其中逗号有他们周围空间,如"test, test,test test test , test"

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

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:斯普利特()是一个JavaScript函数,没有jQuery的正常工作了。 HTTP://计算器

0

这是在不使用过滤器

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