2015-04-18 33 views
-1

標題可能沒有多大意義,所以讓我說清楚:正則表達式,如果不重複特定時間

我想趕上那不是重複一次或三次空格字符。並將它們替換爲無。

例如,這個;

'the quick brown fox jumps  over the lazy dog' 

會變成這個;

'the quick brown fox jumps over the lazy dog' 

目前我得到與split由三個空間荷蘭國際集團的字符串,然後用一個空格和清潔空索引。

回答

3

比賽2位或4個+空格,與周圍字邊界:

newstr = str.replace(/\b(\s\s|\s{4,})\b/g, ' '); 

\b匹配單詞邊界,將保持\s\s從兩個空間匹配3個字符的序列中。

g修飾符使其替換輸入字符串中的所有匹配項。

+0

我確實犯了一個錯誤,我忘了'g'的標誌 – Barmar

1

您可以使用replace

var str = 'the quick brown fox jumps  over the lazy dog'; 
var res = str.replace(/\b\s{2}\b|\b{4,}\b/g, " "); 

正則表達式/ {4,}/i將匹配4個或更多space.and \s{2}比賽2空間。

+0

2個空格怎麼辦? – Barmar

+0

@Barmar是的,固定;) – Kasramvd

+0

這將刪除三空間序列內的兩個空格之一 – Barmar