2013-10-08 145 views
7

我有一個像正則表達式從字符串中刪除多個逗號和空格在javascript

var str=" , this, is a ,,, test string , , to find regex,,in js. , "; 

,其中有在開始,中間和串用逗號結束多個空格的字符串。我需要這個字符串在

var str="this is a test string to find regex in js."; 

我發現很多正則表達式在論壇刪除空格,逗號分開,但我不能加入他們刪除兩者。

請給可能的話正則表達式了Syntex的解釋。

在此先感謝

+0

_「請給正則表達式了Syntex到如果可能的解釋」 _ - 你看着[MDN的正則表達式頁面(HTTPS: //developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions)或http://www.regular-expressions.info/? – nnnnnn

+0

在其他字符串我需要多個空間替換和多個逗號與單個逗號,如var str =「,這是取代,,多個逗號和空格。我需要從字符串的開頭和結尾替換逗號,用一個空格替換多個空格,並將多個逗號替換爲單個逗號。 as var result_str =「這是替換,多個逗號和空格」; – Dashrath

+0

@Dashrath你可以把它放在你的問題上嗎?什麼時候該逗號不能完全刪除? – Jerry

回答

17

只需更換每一個空格和逗號,空間,然後修剪的尾隨空格:

var str=" , this, is a ,,, test string , , to find regex,,in js. , "; 
res = str.replace(/[, ]+/g, " ").trim(); 

jsfiddle demo

+1

Thx是一個很好的答案,但str.replace(/ [,] +/g,「」).trim()和str.replace(/ [,] +/g,「」)之間的真正區別是沒有trim()?剛剛檢查過,結果是一樣的(或者我可能會誤認爲某處?) –

+2

@NikolayTalanov開始和結束的空間,如果你有'****你好***'它最終會成爲'*你好*'。使用'trim()'消除了這一點。請注意使用*表示清晰的空間... – Lloyd

+0

@勞埃德正確:) – Jerry

1

嘗試是這樣的:

var new_string = old_string.replace(/[\s,]+/g,' ').trim(); 

的正則表達式是簡單[\s,]+如果我們要打破這種下來\s意味着任何空白字符和,是文字逗號。 []是一個字符集(思考數組),而+表示一個或多個匹配。

如果你只是想一個空間,沒有任何空格,你可以用字面上的空格替換\s爲好。

我們扔在一個/g上月底,以便它在全球搜索和替換,否則它會做它的只有一個匹配。

+0

這產生的結果爲new_string =「thisisteststringtofindregexinjs」; – Dashrath

+0

糟糕,我現在修好了。 – Lloyd

+0

它只是用空格替換逗號,導致在單詞之間有幾個空格的字符串。 – Butt4cak3

1

您可以使用REG前此

/[,\s]+|[,\s]+/g 

var str= "your string here"; 
//this will be new string after replace 
str = str.replace(/[,\s]+|[,\s]+/g, 'your string here'); 

RegEx Explained and Demo

+1

您應該使用regex101上的替換函數:) – Jerry

0

您應該可以使用

 
str.replace(/,/g," "); 

的「G」是關鍵,你可能需要使用[,]

相關問題