2013-04-23 2 views
7

Мне нужно заменить все \n на \r\n, но только если \n еще нет \r.
т.е.
Hello\nGreat\nWorld ->Hello\r\nGreat\r\nWorldHello\r\nGreat\r\nWorld
->Hello\r\nGreat\r\nWorld.javascript, замените n на r n

В Java я могу сделать это следующим способом

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

Но (?<!X) конструкции отсутствует в JS.
Любые идеи, как я могу это сделать в JS?

+4

просто заменить все '\ г \ n' на' \ n', после того, что все ' \ n' \ '\ r \ n'. Необязательного регулярного выражения не требуется. – Yoshi

+0

[Возможный дубликат] (http://stackoverflow.com/questions/7376238/javascript-regex-look-behind-alternative) –

ответ

27

Просто сделайте \r необязательная часть матча, то вы можете заменить безнаказанно:

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

+1. И Феликс, и я не рассматривали это :) –

+1

@Jack: Я видел все это и в настоящее время думал, «что со мной все время тоже» :) – Jon

+0

Да, это хорошо работает! Thx – Ilya

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