簡體   English   中英

在JavaScript中的單個多行字符串中的換行符之前修剪尾隨空格

[英]Trim trailing spaces before newlines in a single multi-line string in JavaScript

假設我有這個單字符串,這里我用^表示空格(“”)

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

使用.replace()刪除尾隨空格的正則表達式是什么? 使用replace(/\\s+$/g, "")並不是很有幫助,因為只使用“fox”刪除最后一行的空格。

通過其他問題,我發現replace(/\\s+(?:$|\\n)/g,"")匹配正確的部分,但也刪除了新的行字符,但我確實需要它們。

所以完美的結果將是:

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

(只刪除其他所有內容的尾隨空格)

添加'm'多行修改器。

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

還是更快......

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

為什么這會更快? 請參閱: 更快的JavaScript修剪

附錄:上述表達式具有壓縮相鄰換行符的潛在不良影響。 如果這不是所需的行為,則首選以下模式:

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

編輯2013-11-17: - 添加了不壓縮連續換行符的替代模式。 (感謝dalgard指出這個缺陷。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM