删除单个新行
Remove sinlge new lines
我想用一个 space 替换单个新行,就像我有这样的字符串:
"foo\nbar\nbaz\n\nquux"
我想要
"foo bar baz\n\nquux"
我试过这个正则表达式:/\n(?!\n)/
但它不起作用,它用 space 替换单个新行,但也有一个新行后面有新行。
试试这个:
"foo\nbar\nbaz\n\nquux".replace(/([^\n])\n(?!\n)/g," ")
您的原始版本跳过了第一个 \n
,然后替换了第二个(因为它后面没有 \n
)。您需要检查它在 之后或 之前没有 \n
。
将匹配的 non-newline 字符放回原处。不幸的是,javascript 不支持 non-consuming look-behinds.
(^|(?!\n).)\n(?!\n)
answer.See demo.Replace 的另一种变体
我想用一个 space 替换单个新行,就像我有这样的字符串:
"foo\nbar\nbaz\n\nquux"
我想要
"foo bar baz\n\nquux"
我试过这个正则表达式:/\n(?!\n)/
但它不起作用,它用 space 替换单个新行,但也有一个新行后面有新行。
试试这个:
"foo\nbar\nbaz\n\nquux".replace(/([^\n])\n(?!\n)/g," ")
您的原始版本跳过了第一个 \n
,然后替换了第二个(因为它后面没有 \n
)。您需要检查它在 之后或 之前没有 \n
。 将匹配的 non-newline 字符放回原处。不幸的是,javascript 不支持 non-consuming look-behinds.
(^|(?!\n).)\n(?!\n)