2013-04-23 183 views
7

我需要用\r\n替换全部\n,但前提是\n还没有\r

Hello\nGreat\nWorld - >Hello\r\nGreat\r\nWorld
Hello\r\nGreat\r\nWorld - >Hello\r\nGreat\r\nWorldjavascript,用 r n替换 n

在Java中我能做到这一点在明年的方式

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

(?<!X)结构是JS缺席。
任何想法,我怎么能在JS中做到这一点?

+4

刚刚替换所有'\ r \ N'通过'\ N',之后,所有' \ n \'\ r \ n'。没有花哨的正则表达式需要。 – Yoshi 2013-04-23 09:04:12

+0

[可能的重复](http://stackoverflow.com/questions/7376238/javascript-regex-look-behind-alternative) – 2013-04-23 09:04:20

回答

27

简单地使\r比赛的可选部分,那么你就可以肆无忌惮地取代:

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

+1。菲利克斯和我都没有考虑这个:) – 2013-04-23 09:07:01

+1

@杰克:我看到了所有这一切,并且正在思考“这一直发生在我身上”:) – Jon 2013-04-23 09:07:39

+0

是的,这个效果很好! Thx – Ilya 2013-04-23 09:09:03

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