2013-07-08 111 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");