在JavaScript中的单个多行字符串中的换行符之前修剪尾随空格

时间:2011-04-06 15:19:31

标签: javascript regex

假设我有这个单字符串,这里我用^

表示空格(“”)
^^quick^^^\n
^brown^^^\n
^^fox^^^^^\n

使用.replace()删除尾随空格的正则表达式是什么? 使用replace(/\s+$/g, "")并不是很有帮助,因为只删除空格 在“狐狸”的最后一行。

通过其他问题,我发现replace(/\s+(?:$|\n)/g,"")与正确的部分相符 但也摆脱了新行字符,但我确实需要它们。

所以完美的结果将是:

^^quick\n
^brown\n
^^fox\n

(只删除所有其他内容的尾随空格)

1 个答案:

答案 0 :(得分:15)

添加'm'多行修饰符。

replace(/\s+$/gm, "")

还是更快......

replace(/\s\s*$/gm, "")

为什么这会更快?请参阅:Faster JavaScript Trim

附录:上述表达式具有压缩相邻换行符的潜在不良影响。如果这不是所需的行为,则首选以下模式:

replace(/[^\S\r\n]+$/gm, "")

编辑2013-11-17: - 添加了不压缩连续换行符的替代模式。 (感谢dalgard指出这个缺陷。)