2013-04-23 46 views
7

Tôi cần thay thế tất cả \n bằng \r\n, nhưng chỉ khi \n chưa được \r ưu tiên.
ví dụ
Hello\nGreat\nWorld ->Hello\r\nGreat\r\nWorld
Hello\r\nGreat\r\nWorld ->Hello\r\nGreat\r\nWorld.javascript, thay thế n bằng r n

Trong Java tôi có thể làm điều đó trong cách tiếp

"Hello\nGreat\nWorld".replaceAll("(?<!\r)\n", "\r\n"); 

Nhưng (?<!X) xây dựng vắng mặt trong JS.
Bất kỳ ý tưởng nào, làm cách nào tôi có thể làm điều đó trong JS?

+4

chỉ thay thế tất cả '\ r \ n' bởi' \ n', sau đó tất cả ' \ n' bởi '\ r \ n'. Không cần regex ưa thích. – Yoshi

+0

[Có thể trùng lặp] (http://stackoverflow.com/questions/7376238/javascript-regex-look-behind-alternative) –

Trả lời

27

Đơn giản chỉ cần làm cho \r một phần tùy chọn của trận đấu, sau đó bạn có thể thay thế được dễ dàng:

"Hello\r\nWorld\n".replace(/\r?\n/g, "\r\n") 
+1

+1. Cả Felix và tôi đều không xem xét điều này :) –

+1

@Jack: Tôi đã thấy tất cả điều đó và hiện đang nghĩ "điều đó xảy ra với tôi mọi lúc" :) – Jon

+0

Vâng, điều này hoạt động tốt! Thx – Ilya

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