JavaScript:将 \n 替换为 \r\n

12

我需要将所有的\n替换为\r\n,但是仅在之前没有出现过\r的情况下才替换。
例如:
Hello\nGreat\nWorld -> Hello\r\nGreat\r\nWorld
Hello\r\nGreat\r\nWorld -> Hello\r\nGreat\r\nWorld

在Java中,我可以这样做:

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

但是,在JS中不存在(?<!X)结构。
有什么办法可以在JS中实现它吗?


5
只需将所有的\r\n替换为\n,然后将所有的\n替换为\r\n即可。不需要使用复杂的正则表达式。 - Yoshi
可能是重复问题 - Florian F.
2个回答

37

只需将 \r 设为匹配的可选部分,然后您就可以毫不顾虑地进行替换:

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

1
@Jack:我看到了所有的内容,当时就在想“这种事情经常发生在我身上”。 :) - Jon

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接