去除換行工具
快速去除文字中的換行符,支援多種處理模式
選擇處理方式
什麼是去除換行?
去除換行是將文字中的換行符進行處理或刪除的操作。換行符是控制文字顯示格式的特殊字元,不同系統使用不同的換行符標準:Windows 使用 CRLF(\r\n),Unix/Linux 使用 LF(\n),早期 Mac 使用 CR(\r)。本工具支援處理所有常見換行符格式,提供四種處理模式:去除所有換行、換行轉空格、去除空行、合併空行,滿足不同場景下的文字整理需求。
使用方法
使用方法
- 在左側輸入框中輸入或貼上要處理的文字
- 選擇處理模式(移除所有換行、換行轉空格等)
- 結果將自動顯示在右側並提供即時預覽
- 點選「複製」複製結果,或點選「交換」將結果作為輸入進行進一步處理
文字清理技巧
- 當需要保持詞語分隔時,選擇「換行轉空格」;移除所有換行可能會不慎將詞語或欄位連在一起。
- 對於CSV、程式碼或地址等結構化資料,複製前請預覽結果,因為換行可能具有意義。
使用場景
技術原理
每種模式都是一次對 String.prototype.replace 搭配全域正則表達式的呼叫。移除所有使用 /[\r\n]+/g 替換為空字串;換行轉空格使用 /[\r\n]+/g 替換為單個空白;合併空行使用 /(\r?\n){2,}/g 替換為 '\n\n',將三個以上的連續換行壓縮為一個空行;去除空行先以 /\r?\n/ 分割,過濾掉修剪後為空的行,再以 '\n' 重新連接。使用字元類別形式 [\r\n] 是刻意的,因為三種經典行尾——CRLF(\r\n,自 DOS 起的 Windows 行尾)、LF(\n,Unix 和現代 macOS 行尾)和單獨的 CR(\r,經典 Mac OS 至 System 9)——即使在同一個檔案中混合出現也必須全部處理,這是跨平台複製貼上或在記事本中編輯 Unix 檔案時常見的現象。另外還有兩個 Unicode 斷行點但在實踐中很少見:U+2028 LINE SEPARATOR 和 U+2029 PARAGRAPH SEPARATOR,由 Unicode UAX #14 斷行演算法定義,自 ES2019 起被 JavaScript 字串字面值識別。目前工具將它們視為普通字元,這與大多數使用者從聊天應用貼上時的預期一致。UTF-8 檔案開頭的 BOM(U+FEFF)也會原樣保留——如果下游解析器嚴格,需要單獨去除。即時更新由一對 React useState/useMemo 驅動:受控的 textarea 寫入輸入,memo 在每次按鍵時重新計算結果,React 的協調機制只重新繪製輸出面板。因為在現代 V8 上對數百 KB 以內的字串進行正則替換在毫秒內即可完成,所以不需要防抖;對於數 MB 的輸入,成本仍然遠低於 60 Hz 下 16 幀的幀預算。
- 移除所有:text.replace(/[\r\n]+/g, '') —— 將連續的換行序列壓縮為空,適用於 JSON 字串字面值和 .env 值
- 換行轉空格:text.replace(/[\r\n]+/g, ' ') —— 保留自動換行段落的詞邊界,不會出現雙空格
- 合併空行:text.replace(/(\r?\n){2,}/g, '\n\n') —— 將連續空行壓縮為一個空行,保留段落節奏
- 去除空行:split(/\r?\n/).filter(l => l.trim() !== '').join('\n') —— 保留有內容的行,並在一次處理中將行尾正規化為 LF
- 行尾種類:CRLF(Windows \r\n,源自打字機的歸位+換行)、LF(Unix \n,自 1970 年代起)、CR(經典 Mac 至 System 9)—— [\r\n] 字元類別涵蓋全部三種;Unicode U+2028 和 U+2029 來自 UAX #14,ES2019 字串字面值可識別,但在使用者輸入中很少見
- 檔案開頭的 BOM(U+FEFF)保持不變 —— 如果下一個處理階段是嚴格的 JSON 或 CSV 解析器,使用 text.replace(/^\uFEFF/, '') 去除
- Git 的 core.autocrlf=true 在簽出時正規化 CRLF↔LF —— 當檔案已到達本機但行尾不正確且 Git 未偵測到時,使用此工具處理
範例
PDF 複製文字整理
原始:Thi s is
from PDF
copied
content
處理後:ThisisfromPDFcopiedcontent程式碼壓縮範例
原始:function hello() {
return 'world';
}
壓縮後:function hello(){return 'world';}文章段落整理
移除多餘空行並保留段落間距,讓文章排版整齊規範常見問題
會移除哪些類型的換行?
三種行尾慣例都會處理:LF(\n,Unix/macOS)、CRLF(\r\n,Windows)、CR(\r,舊版 Mac)。輸出會變成單行。也可選擇一併移除或正規化定位字元、多餘空格與其他空白字元。
段落間距會被保留嗎?
切到「合併為單一空格」會把每個換行替換成空格;切到「完全移除」則直接相連。如果文字是有空行的段落,可以選擇只移除段內折行、保留段落分隔(一個換行)—常用於整理從 PDF 貼上的文字。
為什麼貼上的文字裡有看得到卻去不掉的斷行?
可能是軟換行或看不見的分隔符,例如 U+2028(LINE SEPARATOR)或 U+0085(NEL)。請改用「移除所有空白分隔符」這個 Unicode 感知選項,而不是單純移除換行。某些 PDF 複製內容還會帶零寬空格,請開啟「移除不可見字元」。
這和在程式碼裡 join 文字有什麼不同?
操作完全一樣,只是改成視覺化。本頁等同於 JavaScript 中執行 `text.replace(/\r?\n/g, ' ').trim()`。如果你在寫腳本就用程式碼處理;如果只是要清一次貼進來的文字,就在這裡做。
會處理行尾空白與多餘空格嗎?
會,只要勾選「合併多個空格」,這在原文用多個空格做對齊時很實用。每行末尾的空白也會在合併前先去掉。
可以處理中日韓文字嗎?
可以。預設會在中日文字之間直接移除換行,不插入西式空格—因為東亞標點習慣上字與字之間不留空。如果文字中英混排,可開啟「保留單字間距」選項。
我的文字會被上傳嗎?
不會。替換在你的瀏覽器中執行,貼上的文字不會被傳送。