2012-01-29 89 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(';'); 
相關問題