我有一个带有关键字的字符串,我需要检查这个字符串是否包含空格,如果是,则用逗号替换它们
字符串可以是“keyword1 keyword2,keyword3 keyword4,keyword5”
或任何其他空格和逗号的组合。
最终结果应该是由逗号分隔的一串关键字,没有任何间距,如下面的“keyword1,keyword2,keyword3,keyword4,keyword5”。
因为我试图做$("#strId").split('').join(',')
这完成了这项工作,但我注意到如果我有一个字符串,每个关键字之间包含多个空格,我会得到多个这样的逗号:
原始字符串=(keyword1 keyword2 keyword3)
结果字符串=(keyword1 ,,,,,, keyword2 ,,,,,, keyword3)
我需要它只用每个单词之间的单个逗号。
我将非常感谢您对此问题的帮助
谢谢
答案 0 :(得分:21)
拆分任何空格和逗号序列:
str.split(/[ ,]+/).join(',')
您可能还想使用filter
删除空字符串:
str.split(/[ ,]+/).filter(function(v){return v!==''}).join(',')
另一种解决方案是匹配任何不包含空格或逗号的序列:
str.match(/[^ ,]+/g).join(',')
答案 1 :(得分:9)
var newString = yourString.replace(/[ ,]+/g, ",");
这表示用一个逗号替换一行中的一个或多个空格或逗号的任何序列,因此您可以使用逗号在其周围留出空格的字符串,如"test, test,test test test , test"
。
(注意:如果您想在正则表达式中使用\s
以外的其他空白字符,请使用/[\s,]+/g
)
答案 2 :(得分:2)
答案 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