QuickATools

Công cụ lập trình · Free browser tool

Trình kiểm tra Regex

Kiểm tra và gỡ lỗi biểu thức chính quy theo thời gian thực với làm nổi cú pháp trực tiếp, nhóm capture và bật tắt cờ.

Regular expression

Pattern between slashes · flags toggle on the right.

g
g Global — find all matchesi Ignore casem Multiline — ^/$ per line
Valid pattern/\b(\w+)@(\w+)\.(\w+)\b/g3 matches

Test string

Paste the text you want to match against.

107 characters

Highlighted matches

Matching regions are marked in amber below.

Contact us at hello@example.com or support@quickatools.com. Also try BAD@EMAIL (no TLD) and alice@site.org.

Match details

3 results
#MatchIndex$1$2$3
1hello@example.com1431helloexamplecom
2support@quickatools.com3558supportquickatoolscom
3alice@site.org92106alicesiteorg

Frequently Asked Questions

Các cờ g, i và m thực sự làm gì?

Cờ g (global) tìm mọi khớp trong chuỗi thay vì dừng sau cái đầu. Cờ i (ignore case) làm mẫu không phân biệt hoa thường, nên /hello/i khớp "Hello" và "HELLO". Cờ m (multiline) đổi cách ^ và $ hành xử — với m bật, chúng khớp đầu và cuối mỗi dòng thay vì chỉ đầu và cuối toàn chuỗi. Bật tắt trực tiếp trong công cụ này để thấy khác biệt ngay.

Sự khác biệt giữa một match và một capture group là gì?

Một match là toàn bộ chuỗi con thỏa mẫu của bạn. Capture group là các phần của match bạn cố ý "lưu" bằng cách bọc phần mẫu trong ngoặc — ví dụ /(\d{4})-(\d{2})-(\d{2})/ khớp "2026-08-07" tạo một match ("2026-08-07") và ba capture group ($1 = "2026", $2 = "08", $3 = "07"). Capture group là thứ bạn dùng trong thay thế hoặc khi trích trường có cấu trúc từ văn bản.

Engine RegExp của JavaScript khác các flavor regex khác thế nào?

JavaScript dùng flavor dựa trên ECMAScript, hỗ trợ lookaround, named group và Unicode property escape (với cờ u), nhưng không hỗ trợ một số tính năng có trong PCRE hoặc .NET như mẫu đệ quy hoặc possessive quantifier. Mẫu bạn kiểm tra ở đây hành xử đúng như trong code trình duyệt hoặc Node.js — nên nếu mẫu hoạt động trong công cụ này, nó sẽ hoạt động cùng cách trong ứng dụng JavaScript của bạn.

Có an toàn khi kiểm tra regex trên mã nguồn thật hoặc dữ liệu nhạy cảm ở đây không?

Có. Biên dịch mẫu, khớp, làm nổi và tạo báo cáo đều chạy cục bộ bằng engine RegExp tích hợp của trình duyệt — không gì bạn dán được tải lên, ghi log hoặc gửi lên máy chủ. Điều đó khiến an toàn khi gỡ lỗi mẫu xác thực form đăng ký, quy tắc parse log hoặc regex làm đỏ trên văn bản mẫu thật (kể cả nhạy cảm) mà không lộ văn bản đó cho dịch vụ bên thứ ba.

Vì sao phản hồi Regex trực tiếp thắng việc đoán-và-tải-lại khi debug

Biểu thức chính quy đặc theo thiết kế — thiếu một escape, quantifier tham lam, hoặc sai cờ có thể khớp nhầm im lặng (hoặc không khớp gì). Gỡ lỗi bằng cách dán vào code production rồi tải lại thì chậm và rủi ro. Trình kiểm tra trực tiếp làm nổi mọi khớp và hiện mỗi capture group khi bạn gõ thu gọn vòng phản hồi đó xuống mili giây, để bạn thấy chính xác ^, $ hoặc nhóm lồng đang làm gì trước khi mẫu bao giờ được ship.

Phản hồi đó cũng quan trọng với quy tắc nhạy cảm bảo mật. Bộ xác thực form đăng ký, mẫu làm đỏ log và bộ lọc nội dung thường được kiểm tra trên dữ liệu mẫu thật — email, số điện thoại hoặc mảnh đầu vào người dùng. Gửi văn bản đó tới playground regex bên thứ ba nghĩa là tin máy chủ của họ với nội dung bạn có thể không muốn rời máy. Công cụ này không bao giờ tải lên gì: biên dịch mẫu, khớp, làm nổi và báo cáo khớp đều chạy qua engine RegExp tích hợp của trình duyệt.

Vì engine là cùng triển khai ECMAScript mà trình duyệt và Node.js dùng, mẫu hoạt động ở đây sẽ hành xử cùng cách trong ứng dụng JavaScript của bạn — kể cả cách cờ như g, i và m đổi khớp, và cách capture group được đánh số. Dùng khung làm nổi hổ phách để phát hiện khớp ngoài ý muốn, và bảng khớp để xác minh $1, $2 và bạn bè trích đúng trường bạn kỳ vọng.

Cần dọn JSON mẫu trước khi kiểm tra quy tắc parse? Dùng Định dạng & kiểm tra JSON. Giải mã token đã mã hóa trước? Thử Mã hóa/Giải mã Base64. Tạo ID fixture cho bộ kiểm thử? Trình tạo UUID/GUID chạy cục bộ giống công cụ này.