Thêm game tại WuGames.ioTài trợKhám phá kho game trình duyệt miễn phí — chơi ngay, không tải, không đăng ký.Chơi ngay

Thay Thế Từ

Tìm và thay thế bất kỳ từ, cụm hay mẫu nào trong văn bản. Hỗ trợ regex, phân biệt hoa thường, toàn từ và thay hàng loạt. Miễn phí ngay trên trình duyệt.

settings Settings

Về Công Cụ Thay Thế Từ

Thay Thế Từ là tiện ích tìm và thay thế chạy trên trình duyệt với bốn chế độ khớp — chuỗi con literal, chuỗi con phân biệt hoa thường, toàn từ (nhận biết biên từ), và biểu thức chính quy JavaScript đầy đủ (hương vị ECMAScript với flag /g, /i, /m, /s). Chế độ literal dùng String.prototype.replaceAll() cho khớp ký tự thô. Chế độ toàn từ bọc thuật ngữ tìm kiếm với neo biên từ \b, nên 'mèo' sẽ không khớp bên trong 'mèo hoang' (mèo + hoang riêng) hay 'mèotrê'. Chế độ regex truyền pattern thẳng vào constructor RegExp — cho phép dùng nhóm bắt, lookahead/lookbehind, lớp ký tự, lượng tử, và tham chiếu ngược ($1, $2) trong chuỗi thay thế. Chế độ hàng loạt đọc một cặp tìm→thay mỗi dòng (tách bằng mũi tên ASCII '→' hay '->' thân thiện bàn phím) và áp dụng theo thứ tự từ trên xuống — nghĩa là cặp sau thấy đầu ra của cặp trước, hữu ích cho biến đổi xâu chuỗi nhưng cũng là cạm bẫy nếu thay thế sau khớp lại đầu ra trước. Quy trình điển hình: tìm-và-thay tên biến trong đoạn code (chế độ toàn từ), sửa lỗi chính tả trong tài liệu dài, ẩn PII bằng regex như \b\d{3}-\d{2}-\d{4}\b cho SSN Mỹ, chuẩn hóa định dạng dữ liệu (DD/MM/YYYY thành YYYY-MM-DD qua regex), và chạy hoán đổi từ điển dịch với chế độ hàng loạt.

Khác biệt giữa 'Chỉ Toàn Từ' và regex với \b là gì?

Giống hệt về chức năng. Chế độ toàn từ chỉ tự động bọc thuật ngữ tìm kiếm literal trong \b...\b và escape ký tự đặc biệt regex trước, nên '$5' tìm đúng nghĩa token đô-la-5 mà bạn không phải escape dấu đô-la. Nếu muốn khớp biên từ cộng tính năng regex (luân phiên, lượng tử), bật Dùng Regex và tự viết \b: '\b(mèo|chó)\b' khớp từ độc lập mèo hay chó nhưng không 'mèotrê' hay 'chórán'.

Các flag regex JavaScript /g, /i, /m, /s có được hỗ trợ không?

Có ngầm. Công cụ luôn dùng /g (toàn cục) nên mọi khớp được thay cùng lúc (hoặc chỉ đầu tiên nếu chọn chế độ đó, sẽ tắt flag). Tùy chọn phân biệt hoa thường bật/tắt /i. Flag /m (neo ^ và $ đa dòng theo dòng) và /s (chấm khớp xuống dòng) không lộ trực tiếp — nhưng nếu viết pattern inline như 'foo$' nó chỉ khớp cuối chuỗi mặc định. Để neo theo dòng, dùng flag inline (?m) ở đầu: '(?m)foo$' khớp 'foo' ở cuối bất kỳ dòng nào. Cho dotall, dùng '[\s\S]' như thay thế khả chuyển cho /s.

Có thể dùng nhóm bắt và tham chiếu ngược ($1, $2) trong thay thế không?

Có — Thay Thế Từ dùng String.replace() native JavaScript nên mọi pattern thay thế chuẩn hoạt động: $& (toàn khớp), $` (text trước khớp), $' (text sau khớp), $1-$99 (nhóm đánh số), $<tên> (nhóm có tên qua cú pháp (?<tên>...)). Ví dụ: tìm '(\w+)@(\w+\.\w+)' và thay '$1 tại $2' chuyển '[email protected]' thành 'an tại vidu.com'. Hữu ích cho hoán đổi định dạng ngày — tìm '(\d{2})/(\d{2})/(\d{4})' thay '$3-$2-$1' chuyển '24/12/2025' thành '2025-12-24' (ISO 8601).

Thay Thế Từ — Tìm và thay thế bất kỳ từ, cụm hay mẫu nào trong văn bản. Hỗ trợ regex, phân biệt hoa thường, toàn từ và thay hàng loạt.
Thay Thế Từ

Thứ tự Thay Thế Hàng Loạt hoạt động ra sao — cặp sau có thể khớp lại đầu ra trước không?

Có, và đây là cạm bẫy phổ biến. Mỗi cặp chạy tuần tự trên trạng thái văn bản hiện tại. Nếu cặp 1 đổi 'mèo' thành 'chó' và cặp 2 đổi 'chó' thành 'ngựa', bạn kết thúc với 'ngựa' khắp nơi — không phải điều bạn muốn. Cách khắc phục: dùng placeholder cho lần chạy đầu. Cặp 1: 'mèo' → '__TMP1__'. Cặp 2: 'chó' → 'ngựa'. Cặp 3: '__TMP1__' → 'chó'. Điều này đảm bảo độc lập. Chế độ hàng loạt là dòng theo dòng dạng 'tìm → thay' (dùng → hay -> làm phân cách); dòng trống hay sai định dạng bị bỏ qua.

Tại sao tìm kiếm regex của tôi không tìm thấy điều mong đợi?

Ba nguyên nhân phổ biến. Một, ký tự đặc biệt không escape: chấm (.), sao (*), cộng (+), hỏi (?), ngoặc, ngoặc vuông, ngoặc nhọn, gạch chéo ngược, mũ, đô-la, pipe — phải escape bằng gạch chéo ngược để khớp đúng nghĩa. Hai, lượng tử tham lam vs lười: '<.*>' khớp từ '<' đầu tiên đến '>' cuối cùng trên dòng; dùng '<.*?>' cho khớp lười. Ba, phân biệt hoa thường — nếu văn bản là 'XIN CHÀO' nhưng tìm 'xin chào' mà không bật không phân biệt hoa, không khớp. Thử trên mẫu nhỏ trước; bộ đếm Kết Quả Tìm Thấy hiện 0 khi không có gì khớp.

Có nút hoàn tác nếu thay thế sai không?

Không có hoàn tác tích hợp — nhưng bạn có thể ngăn thảm họa bằng cách copy bản gốc sang tab thứ hai trước (clipboard) hoặc chạy chế độ Chỉ Thay Thế Đầu Tiên để thử trước khi cam kết Thay Thế Tất Cả. Bộ đếm 'Tổng Số Thay Thế' hiển thị sau mỗi lần chạy cho biết bao nhiêu thay thế đã xảy ra, nên số bất ngờ cao (giả sử bạn mong 5 nhưng được 200) là cờ đỏ để kiểm tra đầu ra trước khi dán lại vào production. Refresh tab mất tất cả — copy kết quả ra trước khi rời.

Văn bản của tôi có rời khỏi trình duyệt không?

Không. Mọi tìm/thay chạy trong JavaScript trình duyệt qua String.replace() và RegExp trực tiếp trên giá trị textarea. Không fetch() lên server, không analytics chứa nội dung, không ghi localStorage. Tab Network của DevTools xác nhận 0 request ra ngoài khi nhấp Thay Thế. An toàn cho nội dung nhạy cảm như mã nguồn nội bộ, PII khách hàng, văn bản pháp lý hay khóa mã hóa — không gì được tải lên hay ghi log.