2013-04-23 24 views
7

Ich muss alle \n durch \r\n ersetzen, aber nur wenn \n nicht bereits \r previosly.
heißt
Hello\nGreat\nWorld ->Hello\r\nGreat\r\nWorld
Hello\r\nGreat\r\nWorld ->Hello\r\nGreat\r\nWorld. javascript, ersetzen n durch r n

In Java ich es in der nächsten Art und Weise tun kann

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

Aber (?<!X) Konstrukt ist in JS fehlt.
Irgendwelche Ideen, wie kann ich es in JS tun?

+4

nur alle ersetzen '\ r \ n 'von' \ n', danach alle ' \ n' durch '\ r \ n'. Keine Phantasie Regex benötigt. – Yoshi

+0

[Mögliches Duplikat] (http://stackoverflow.com/questions/7376238/javascript-regex-look-behind-alternative) –

Antwort

27

einfach machen den \r ein optionaler Bestandteil des Spiels, dann kann man ungestraft ersetzen:

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

+1. Sowohl Felix als auch ich haben das nicht berücksichtigt :) –

+1

@Jack: Ich habe das alles gesehen und dachte mir gerade "das passiert mir auch die ganze Zeit" :) – Jon

+0

Ja, das klappt gut! Thx – Ilya

3
str.replace('\r\n', '\n').replace('\n', '\r\n')