2013-07-08 175 views
1

我正在使用body.replace(/\r?\n((?!\r?\n)|(?=\r?\n\r?\n\r?\n))/g,'')來替換換行符,問題在於它將所有移除,如果有兩個或多個換行符一個接一個地我想保留它們,因爲它代表一個段落。刪除一個換行符?

例如:

錢使青少年感到壓力。
這讓他們對自己感到不好,並羨慕其他人。
例如,我的朋友和她的家人住在一起,並且與她的妹妹
共享一個房間,她非常可愛,聰明。

這個女孩希望她可以有自己的房間,並有很多東西,
但她不能有這些東西,因爲她的家庭沒有多少錢。
她的家庭收入相當低,因爲她的父親年紀大了,並沒有去上班。

我想這是這樣的:

錢使青少年感到壓力。這讓他們對自己感到不好,並羨慕其他人。例如,我的朋友和她的家人住在一起,必須與她的姐姐分享一個房間,她的姐姐非常可愛,聰明。

這個女孩希望她可以有自己的房間,有很多東西,但她不能擁有這些東西,因爲她的家庭沒有多少錢。她的家庭收入很低,因爲她的父親年紀大了,並沒有去上班。

在此先感謝。

回答

3

你不需要這麼複雜的正則表達式。這些環視真的不需要。

你可以簡單地使用:

body.replace(/(\r|\n|\r\n){1,}/g,'$1'); 

$1是反向引用。如果在正則表達式引擎中使用它,請將其替換爲\1

+0

這是智能+1 –

+0

絕對精彩,非常感謝:) – MNS

1

你能做到這一點

body.replace(/([^\n])(?:\r?\n)(?=[^\n])/g,"$1");