2013-07-08 2 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"); 
Смежные вопросы