我想用一个空格替换单个新行,例如如果我有这样的字符串:

"foo\nbar\nbaz\n\nquux"

我希望有
"foo bar baz\n\nquux"

我已经尝试过这个正则表达式:/\n(?!\n)/,但它不起作用,它用空格替换一行新行,但也替换了一行后有新行的新行。

最佳答案

试试这个:

"foo\nbar\nbaz\n\nquux".replace(/([^\n])\n(?!\n)/g,"$1 ")

您的原始版本跳过了该对中的第一个\n,然后替换了第二个(因为它后面没有\n)。您需要检查其前后是否没有\n$1将匹配的非换行符放回去。不幸的是,javascript不支持非消耗性的后备隐藏。

08-19 02:25