假设我有这个单字符串,这里我用^
表示空格(“”)^^quick^^^\n
^brown^^^\n
^^fox^^^^^\n
使用.replace()删除尾随空格的正则表达式是什么?
使用replace(/\s+$/g, "")
并不是很有帮助,因为只删除空格
在“狐狸”的最后一行。
通过其他问题,我发现replace(/\s+(?:$|\n)/g,"")
与正确的部分相符
但也摆脱了新行字符,但我确实需要它们。
所以完美的结果将是:
^^quick\n
^brown\n
^^fox\n
(只删除所有其他内容的尾随空格)
答案 0 :(得分:15)
添加'm'
多行修饰符。
replace(/\s+$/gm, "")
还是更快......
replace(/\s\s*$/gm, "")
为什么这会更快?请参阅:Faster JavaScript Trim
附录:上述表达式具有压缩相邻换行符的潜在不良影响。如果这不是所需的行为,则首选以下模式:
replace(/[^\S\r\n]+$/gm, "")
编辑2013-11-17: - 添加了不压缩连续换行符的替代模式。 (感谢dalgard指出这个缺陷。)