2012-03-24 57 views
19

Tôi có một var có chứa một danh sách lớn của các từ (triệu) ở định dạng này:Làm cách nào để thay thế dòng mới/ngắt dòng bằng dấu cách trong javascript?

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

Tôi muốn thực hiện một chức năng mà sẽ thay thế các newline giữa mỗi từ với không gian.

Vì vậy, kết quả một cái gì đó sẽ trông như thế này:

car house home computer go went 

Trả lời

43

Bạn có thể sử dụng .replace() chức năng:

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

Lưu ý rằng bạn cần cờ g trên cụm từ thông dụng để thay thế để thay thế tất cả các dòng mới với không gian thay vì chỉ là dấu cách đầu tiên.

bản demo làm việc: http://jsfiddle.net/jfriend00/VrAw2/

+1

Tại sao lại là downvote? Downvoters cung cấp không có lời giải thích không giúp chúng tôi cải thiện câu trả lời của chúng tôi (do đó mang lại lợi ích cho cả cộng đồng). – jfriend00

0

Một số giải pháp đơn giản sẽ trông như thế

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

Bạn có thực sự cố gắng này? Nó dường như không hiệu quả đối với tôi: http://jsfiddle.net/jfriend00/Zn4WE/1 – jfriend00

+0

có nó hoạt động bây giờ –

+1

Tại sao các parens trong '/ (\ n) /'? Họ không cần thiết. – jfriend00

2

Code: (FIXED)

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

Bạn có thực sự thử điều này không? Dường như nó không hoạt động đối với tôi: http://jsfiddle.net/jfriend00/Zn4WE/1/ – jfriend00

+0

Vẫn cần cờ 'g' hoạt động bình thường. –

+0

@ jfriend00 @Madmartigan TRUE. Đôi khi, điều hiển nhiên bị bỏ qua ... (không có cờ '/ g', chỉ xuất hiện lần đầu tiên) –

18

Trong trường hợp có nhiều ngắt dòng (ký tự xuống dòng) và nếu có thể là cả hai \r hay \n, và bạn cần phải thay thế tất cả các ngắt dòng tiếp theo bằng một không gian, sử dụng

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

Xem regex demo

Các /[\r\n]+/g phương tiện:

  • [\r\n] - phù hợp với một vận chuyển trở lại hoặc một nhân vật thức ăn đường ...
  • + - một hoặc nhiều lần (xuống hàng liên tiếp được kết hợp)
  • /g - tìm và thay thế tất cả các lần xuất hiện trong chuỗi được cung cấp.

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>";

Các vấn đề liên quan