2016-01-13 72 views
2

我想用一個空格來代替單一的新線一樣,如果我有字符串是這樣的:刪除的單層新線

"foo\nbar\nbaz\n\nquux" 

我想有

"foo bar baz\n\nquux" 

我已經試過這正則表達式: /\n(?!\n)/,但它不起作用,它將替換單個新的空白行,但也有一個新的行後有新行。

+0

@ochi如何運作的?所做的只是匹配兩條新線。 – d0nut

+0

@ochi這將匹配兩條換行符,我想匹配一條。 – jcubic

+0

抱歉誤讀了這個問題,刪除了評論 – ochi

回答

5

試試這個:

"foo\nbar\nbaz\n\nquux".replace(/([^\n])\n(?!\n)/g,"$1 ") 

你原來是在對跳過第一\n,然後替換第二(因爲它後面沒有\n)。您需要檢查它沒有\n之後或之前它。 $1將匹配的非換行符放回。不幸的是,JavaScript不支持非消耗的後視。