javascript - 在 JavaScript 中的单个多行字符串中的换行符之前 trim 尾随空格

标签 javascript regex

假设我有一个字符串,这里我用 ^ 表示空格 ("")

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

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

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

所以完美的结果将是:

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

(仅删除尾随空格,其他一切保留)

最佳答案

添加 'm' 多行修饰符。

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

或者更快...

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

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

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

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

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

关于javascript - 在 JavaScript 中的单个多行字符串中的换行符之前 trim 尾随空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5568797/

相关文章:

javascript - 将数据从部分获取到 Controller 的 Angular 方式是什么?

javascript - UUID 的替代方案

javascript - 卸载时关闭许多弹出窗口

JavaScript - 根据 Twitter 规则进行简单的字符计数

c++ - 无法将 sregex_iterator 作为流传递给 cout

javascript - 为什么正则表达式构造函数需要双重转义?

Javascript,添加输入字段会清空所有其他输入字段

javascript - 如果存在 div,则激活函数

java - 在一个 if 语句(+ XOR,正则表达式)中缩短多个 AND + OR

python - 删除 Pandas 数据框列中的多个子字符串