2012-03-24 2 views
19

У меня есть вар, который содержит большой список слов (миллионов) в следующем формате:Как заменить новые строки/разрывы строк пробелами в javascript?

var words = " 
car 
house 
home 
computer 
go 
went 
"; 

Я хочу сделать функцию, которая заменит строку между каждым словом с пространством.

Так что результаты будут что-то выглядеть следующим образом:

car house home computer go went 

ответ

43

Вы можете использовать .replace() функцию:

words = words.replace(/\n/g, " "); 

Заметьте, что вы нужен флаг g в регулярном выражении, чтобы заменить его на замену все новые строки с пространством, а не только с первым.

Работа демо: http://jsfiddle.net/jfriend00/VrAw2/

+1

Почему downvote? Доводчики, которые не дают никаких объяснений, не помогают нам улучшить наши ответы (таким образом, они приносят пользу всему сообществу). – jfriend00

0

Некоторые простое решение будет выглядеть

words.replace(/(\n)/g," "); 
+0

ли вы на самом деле попробовать это? Кажется, что это не работает для меня: http://jsfiddle.net/jfriend00/Zn4WE/1 – jfriend00

+0

да, это работает сейчас –

+1

Почему парнеры в '/ (\ n) /'? Они не нужны. – jfriend00

2

Код: (ИСПРАВЛЕНО)

var new_words = words.replace(/\n/g," "); 
+0

Вы на самом деле попробовали это? Кажется, это не работает для меня: http://jsfiddle.net/jfriend00/Zn4WE/1/ – jfriend00

+0

По-прежнему нужен флаг 'g' для правильной работы. –

+0

@ jfriend00 @Madmartigan ИСТИНА. Иногда очевидное упускается из виду ... (без флага '/ g' заменяется только первое вхождение) –

18

В случае, если есть множественным разрывы строк (символ новой строки символов), и если есть может быть как \r или \n, и вам необходимо: заменить все последующие разрывы строк с пробел, используйте

var new_words = words.replace(/[\r\n]+/g," "); 

regex demo См

The /[\r\n]+/g средства:

  • [\r\n] - сопрягать возврат каретки или символ перевода строки ...
  • + - один или несколько раз (последовательные разрывы строк совпадают)
  • /g - найти и заменить все вхождения в предоставленной строке.

var words = "car\r\n\r\nhouse\nhome\rcomputer\ngo\n\nwent"; 
 
document.body.innerHTML = "<pre>OLD:\n" + words + "</pre>"; 
 
var new_words = words.replace(/[\r\n]+/g," "); 
 
document.body.innerHTML += "<pre>NEW:\n" + new_words + "</pre>";

Смежные вопросы