Kiểm thử biểu thức chính quy (regex)
Kiểm thử một biểu thức chính quy JavaScript trên văn bản của bạn và xem mọi kết quả khớp cùng các nhóm bắt, ngay trong trình duyệt.
Chạy hoàn toàn trong trình duyệt của bạn. Không có gì được tải lên, ghi log hay lưu trữ.
Được tô sáng
| # | Kết quả khớp | Vị trí | Nhóm |
|---|
Viết một mẫu, dán văn bản bạn mong nó khớp và xem ngay nó bắt được gì và bỏ sót gì, với từng nhóm bắt được tách riêng.
Cách hoạt động
Mẫu được trình duyệt của bạn biên dịch và chạy trên văn bản ngay khi bạn gõ. Những gì bạn thấy chính xác là những gì cùng biểu thức đó sẽ làm trong JavaScript, vì đó là cùng một bộ máy.
Với cờ g, mọi kết quả khớp đều được liệt kê; không có nó thì chỉ kết quả đầu tiên. Cờ i bỏ qua chữ hoa chữ thường, m khiến ^ và $ khớp ở ranh giới dòng, s cho phép dấu chấm khớp với ký tự xuống dòng, u bật chế độ Unicode và y neo việc tìm kiếm tại chỉ số cuối cùng (lastIndex).
Các nhóm bắt được đánh số xuất hiện theo thứ tự; một nhóm viết dưới dạng (?<tên>...) được hiển thị kèm tên của nó.
Ví dụ
| Trường hợp | Dữ liệu nhập | Kết quả |
|---|---|---|
| Một ngày theo chuẩn ISO, được tách thành các phần | (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) | năm, tháng và ngày dưới dạng các nhóm có tên |
| Mọi hashtag trong một bài đăng | #\w+ | một kết quả khớp cho mỗi hashtag, với cờ g |
Câu hỏi thường gặp
Đây là biến thể biểu thức chính quy nào?
Biến thể của JavaScript, đúng như trình duyệt của bạn triển khai. PCRE, được PHP và grep -P sử dụng, và RE2, được Go sử dụng, khác ở lookbehind, lượng từ sở hữu (possessive quantifier) và các chuỗi thoát thuộc tính Unicode. Một mẫu chạy được ở đây không bảo đảm sẽ chạy được ở đó.
Trang bị treo khi tôi đang gõ một mẫu.
Một số mẫu quay lui (backtrack) thảm họa với một số văn bản nhất định: các lượng từ lồng nhau như (a+)+ là trường hợp kinh điển. Việc tìm kiếm trên toàn bộ văn bản có giới hạn và sẽ dừng lại kèm cảnh báo, nhưng một lần khớp đơn lẻ đã chạy mất kiểm soát thì không gì trên trang có thể ngắt được: JavaScript không có cách nào dừng một biểu thức chính quy khi nó đã chạy. Hãy tải lại tab và coi đây là một phát hiện chứ không phải sự cố: cùng biểu thức đó trên máy chủ sẽ làm sập một tiến trình.
Có cần thêm dấu gạch chéo không?
Không. Chỉ viết riêng mẫu và đặt các cờ vào trường cờ. Dán /abc/gi làm mẫu sẽ biến các dấu gạch chéo thành một phần của thứ bạn đang tìm.
Văn bản kiểm thử của tôi có bị gửi đi đâu không?
Không, và nó còn được cố ý loại khỏi liên kết chia sẻ. Sao chép liên kết sẽ chia sẻ mẫu và các cờ, không bao giờ chia sẻ văn bản bạn đã kiểm thử.
Cần biết
- Các mẫu không bao giờ được chạy trên máy chủ. Một biểu thức do khách truy cập cung cấp mà quay lui tệ hại sẽ là một cuộc tấn công từ chối dịch vụ ở đó; trong một tab, nó chỉ tốn đúng cái tab đó.