utilduck
Home · Nhà phát triển · Công cụ so sánh văn bản

Công cụ so sánh văn bản

Dán hai phiên bản văn bản bên dưới để xem các dòng thêm và xóa được tô sáng.

Đã thêm0
Đã xóa0

Về công cụ so sánh này

Công cụ này so sánh hai đoạn văn bản theo từng dòng bằng thuật toán dãy con chung dài nhất (LCS) — nguyên lý cốt lõi giống các công cụ diff trong quản lý phiên bản — để tìm tập hợp nhỏ nhất các dòng thêm và xóa biến Văn bản A thành Văn bản B.

Các dòng chỉ xuất hiện trong Văn bản B được đánh dấu là đã thêm, các dòng chỉ xuất hiện trong Văn bản A được đánh dấu là đã xóa, còn các dòng khớp hoàn toàn ở cả hai không được đánh dấu. Công cụ này so sánh toàn bộ dòng, không so sánh từng ký tự trong dòng.

So sánh văn bản theo từng dòng hoạt động như thế nào?

Công cụ này tách cả hai văn bản thành từng dòng và tìm dãy con chung dài nhất (LCS) giữa các dòng của chúng — chuỗi dòng có thứ tự dài nhất xuất hiện trong cả hai văn bản. Bất kỳ dòng nào trong Văn bản A không thuộc chuỗi chung đó được đánh dấu là đã xóa, và bất kỳ dòng nào trong Văn bản B không thuộc chuỗi đó được đánh dấu là đã thêm. Ví dụ: đổi một từ trong một câu sẽ khiến cả dòng đó hiện thành một dòng bị xóa và một dòng được thêm.

Các bước so sánh hai văn bản

  1. Dán hoặc gõ văn bản gốc vào ô Văn bản A.
  2. Dán hoặc gõ văn bản đã cập nhật vào ô Văn bản B.
  3. So sánh tự động cập nhật khi bạn gõ, tách cả hai văn bản thành từng dòng.
  4. Các dòng chỉ có trong Văn bản B được tô sáng là đã thêm; các dòng chỉ có trong Văn bản A được tô sáng là đã xóa.
  5. Dùng nút hoán đổi để đảo văn bản nào được coi là bản gốc nếu bạn dán chúng sai thứ tự.

Cách thuật toán so sánh LCS quyết định phần nào đã thay đổi

Dòng chung = dãy con chung dài nhất(các dòng Văn bản A, các dòng Văn bản B) · Đã xóa = dòng ở A không thuộc chuỗi chung · Đã thêm = dòng ở B không thuộc chuỗi chung
  • Dãy con chung dài nhất (LCS) = chuỗi dòng dài nhất xuất hiện, theo cùng thứ tự tương đối, trong cả hai văn bản (không nhất thiết liền kề)
  • So sánh cấp dòng = phép so sánh thực hiện trên toàn bộ dòng; một thay đổi một ký tự trong một dòng dài vẫn đánh dấu cả dòng đó là đã thay đổi

Ví dụ so sánh dòng

Dòng Văn bản ADòng Văn bản BKết quả
The quick brown foxThe quick brown foxKhông đổi
jumps over the lazy dog.jumps over the sleepy dog.1 đã xóa + 1 đã thêm
(không có)A new line was inserted here.1 đã thêm
This line was deleted.(không có)1 đã xóa

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

Vì sao đổi một từ lại đánh dấu cả dòng là đã thay đổi?

Công cụ này so sánh văn bản ở cấp dòng, không phải cấp ký tự, nên chỉ cần một ký tự khác nhau giữa hai dòng, chúng được coi là hai dòng khác nhau: phiên bản cũ đánh dấu đã xóa và phiên bản mới đánh dấu đã thêm, thay vì chỉ tô sáng riêng từ đã đổi.

Vì sao các dòng bị đổi chỗ lại hiện thành cả đã thêm lẫn đã xóa?

Nếu một dòng chuyển sang vị trí khác so với các dòng xung quanh, nó có thể nằm ngoài dãy con chung dài nhất ở vị trí mới, nên có thể hiện thành một dòng đã xóa ở vị trí cũ và một dòng đã thêm ở vị trí mới, dù bản thân nội dung không thay đổi.

Công cụ này có bỏ qua khác biệt khoảng trắng hay chữ hoa thường không?

Không. Các dòng được so sánh khớp chính xác, nên khác biệt về khoảng trắng đầu dòng, khoảng trắng cuối dòng, hay chữ hoa/thường sẽ khiến hai dòng trông giống hệt nhau bị coi là khác nhau.

Văn bản của tôi có được tải lên đâu để so sánh không?

Không. Cả hai ô văn bản được so sánh hoàn toàn bằng JavaScript chạy trong trình duyệt của bạn; không có gì được gửi lên máy chủ.

Công cụ này có dùng để so sánh hai phiên bản hợp đồng hay văn bản pháp lý được không?

Có, đây là cách dùng phổ biến để nhanh chóng phát hiện đoạn nào được thêm, xóa hay diễn đạt lại giữa hai phiên bản của một tài liệu (hợp đồng, điều khoản dịch vụ, văn bản quy định). Vì so sánh diễn ra theo dòng chứ không theo câu, nên dán văn bản với mỗi câu hoặc mỗi điều khoản xuống dòng riêng sẽ giúp phát hiện thay đổi chính xác hơn.

Công cụ này chỉ so sánh ở cấp độ dòng; không tô sáng các ký tự hay từ cụ thể đã thay đổi bên trong một dòng đã sửa, và văn bản rất lớn (hàng nghìn dòng) có thể so sánh chậm hơn do độ phức tạp của thuật toán.

Quyền riêng tư và an toàn

  • Tính toán trong trình duyệt — Dữ liệu bạn nhập chỉ được tính trên thiết bị của bạn và không gửi tới máy chủ utilduck.
  • Kết nối được mã hóa — Mọi trang đều dùng HTTPS nên không ai trên đường truyền đọc được nội dung.
  • Không chia sẻ với bên thứ ba — Dữ liệu bạn nhập không được chuyển cho dịch vụ phân tích hay quảng cáo.
  • Không lưu trữ — Kết quả không được lưu trên máy chủ nào và bạn không cần tạo tài khoản.

Cập nhật lần cuối: 2026-08-24