我想用一个空格替换单个新行,例如如果我有这样的字符串:
"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不支持非消耗性的后备隐藏。