Văn bản

Whitespace & Trim Tools

Dọn dẹp khoảng trắng thừa: cắt khoảng trắng ở đầu/cuối dòng, gộp các khoảng trắng lặp lại, xóa dòng trống, chuyển đổi tab ↔ khoảng trắng.

Extra whitespace — at line edges, doubled up inside text, blank lines, mixed tabs and spaces — is rarely visible at a glance, but it often breaks string comparisons, parsing, or how code looks. This tool cleans up such issues with a set of targeted operations.

How to use it

Common uses

Things to keep in mind

A non-breaking space ( , code point U+00A0) looks like a regular space but is a different character to a computer — strings containing it aren't equal to a regular space in comparisons.

Trimming line-edge whitespace doesn't touch spaces inside words or sentences — collapsing repeated internal spaces is a separate operation.

Bài viết về công cụ này: Khoảng trắng và ký tự vô hình: nguyên nhân ẩn giấu của các lỗi kỳ lạ

Câu hỏi thường gặp

Sự khác biệt giữa cắt khoảng trắng ở rìa và thu gọn khoảng trắng lặp lại là gì?

Cắt khoảng trắng ở rìa chỉ xóa khoảng trắng đầu và cuối mỗi dòng, trong khi thu gọn khoảng trắng lặp lại thay thế nhiều khoảng trắng liên tiếp trong một dòng bằng một khoảng trắng duy nhất, không đụng đến rìa.

Dòng trống và chuyển đổi tab/khoảng trắng được xử lý như thế nào?

Bạn có thể xóa hoàn toàn dòng trống hoặc chỉ thu gọn các dòng trống liên tiếp thành một, và chuyển đổi tab sang khoảng trắng hoặc ngược lại với độ rộng tab có thể cấu hình.

Văn bản đã dán có được gửi đến máy chủ không?

Không, việc dọn dẹp diễn ra hoàn toàn trong trình duyệt của bạn bằng JavaScript, không có dữ liệu nào được gửi đi nơi khác.

Ký tự độ rộng bằng không là gì?

Đây là các ký tự (zero-width space, zero-width joiner, v.v.) hoàn toàn không chiếm chỗ trên màn hình, nhưng vẫn hiện diện trong văn bản như những ký tự riêng biệt. Chúng đôi khi lọt vào văn bản khi sao chép từ một số trang web và có thể âm thầm phá vỡ việc so sánh chuỗi hay tìm kiếm.

Vì sao non-breaking space trông giống khoảng trắng thường nhưng hoạt động khác?

Non-breaking space ( ) về mặt hình ảnh giống hệt khoảng trắng thường, nhưng đối với máy tính đó là một ký tự khác — các chuỗi chứa hai loại khoảng trắng này về mặt kỹ thuật không bằng nhau khi so sánh, dù trông giống hệt nhau trên màn hình.

Bài viết: Văn bản

Case Converter: vì sao có các kiểu đặt tên khác nhau

Vì sao trong một dự án, biến được viết camelCase nhưng tệp lại kebab-case, và những quy tắc này đến từ đâu.

Text Diff: thuật toán tìm sự khác biệt giữa hai văn bản như thế nào

Thuật toán diff tìm tập hợp thay đổi tối thiểu giữa hai phiên bản văn bản như thế nào.

Biểu thức chính quy: cú pháp cơ bản và các mẫu thường gặp

Cách đọc một biểu thức chính quy, và khớp tham lam khác khớp lười ra sao.

Sắp xếp và loại bỏ dòng trùng lặp: dùng để làm gì

Vì sao sắp xếp theo số đặt "10" trước "9" là một lỗi, và cách tránh điều đó.

String Escape: vì sao cùng một văn bản cần escape khác nhau

Vì sao cùng một dấu ngoặc kép lại được escape khác nhau trong chuỗi JS, JSON và lệnh shell.

CRLF so với LF: vì sao ký tự cuối dòng vẫn còn quan trọng

Vì sao một tệp được viết trên Windows có thể hiển thị là "toàn bộ đã thay đổi" trong git trên Linux.

Đếm ký tự và từ: vì sao không phải lúc nào cũng đơn giản

Vì sao một emoji hoặc chữ có dấu có thể được tính là nhiều ký tự cùng lúc.

Lorem Ipsum: văn bản giữ chỗ đến từ đâu và dùng để làm gì

Vì sao các nhà thiết kế cố tình dùng văn bản "vô nghĩa" thay vì nội dung thật trong bản phác thảo.

Slugify: cách biến bất kỳ văn bản nào thành URL

Một tiêu đề như "Xin chào, Thế giới! Bạn khỏe không?" biến thành chuỗi tương thích URL như xin-chao-the-gioi-ban-khoe-khong ra sao.

Markdown: vì sao cú pháp văn bản đơn giản đánh bại trình soạn thảo phức tạp

Vì sao lập trình viên chọn viết tài liệu bằng Markdown thay vì trình soạn thảo văn bản định dạng phong phú.

Text Reverse: vì sao "đảo ngược văn bản" khó hơn tưởng tượng

Vì sao đảo ngược chuỗi ngây thơ có thể biến một emoji thành các byte không sử dụng được.

Phân tích tần suất văn bản: vì sao cần đếm số lần từ lặp lại

Tần suất chữ cái trong văn bản mã hóa giúp phá vỡ các mật mã thay thế đơn giản nhất như thế nào.