Bài học theo mô-đun (1/4)
Tất cả các cờ chi tiết
Bản tóm tắt đầy đủ về tất cả cờ có sẵn trong JavaScript hiện đại (ES2024). Cờ là một ký tự đơn có tác dụng sửa đổi hành vi của biểu thức chính quy; chúng có thể được kết hợp theo bất kỳ thứ tự nào.
| Cờ | Tên | Hiệu ứng |
|---|---|---|
g | Toàn cầu | Tìm tất cả kết quả phù hợp, không chỉ kết quả đầu tiên (bắt buộc đối với matchAll). |
i | Bỏ qua trường hợp | Không phân biệt chữ hoa chữ thường (bao gồm các ký tự Unicode có cờ u/v). |
m | Đa dòng | ^ và $ khớp với phần đầu/cuối của dòng, không chỉ chuỗi. |
s | Chấm tất cả | . cũng khớp với dòng mới \n. |
u | Unicode | Xử lý đúng các điểm mã > 0xFFFF và bật \\p{...}. |
v | Chế độ v Unicode | Tiện ích mở rộng hiện đại của u với các thao tác được thiết lập ([abc&&[def]]). |
y | Dính | Chỉ khớp từ vị trí lastIndex, không bỏ qua. |
d | Có chỉ số | Kết quả bao gồm indices với điểm bắt đầu/kết thúc của mỗi nhóm. |
const re = /foo/gimu; // global + insensitive + multiline + unicode
re.flags; // "gimu" (always in canonical order: dgimsuvy)Sự kết hợp điển hình
g+i-- "tìm mọi thứ, không phân biệt chữ hoa chữ thường". 80% công dụng thực tế.g+m-- để khớp từng dòng trong văn bản nhiều dòng.g+s-- "dấu chấm khớp với mọi thứ, kể cả dòng mới". Hữu ích để trích xuất các khối trên nhiều dòng.u(hoặcv) -- luôn luôn nếu bạn đang xử lý văn bản trong thế giới thực bằng bất kỳ ngôn ngữ hoặc biểu tượng cảm xúc nào.
Chế độ v Unicode và tiến hóa cờ
Cờ v (có sẵn trong ES2024) thay thế u và cho phép các thao tác nâng cao trên các tập hợp, chẳng hạn như phép trừ và giao lớp ký tự (ví dụ: [\\p{White_Space}&&\\p{ASCII}]).
Hãy thử nó
Tìm tất cả các lần xuất hiện của 'ciao' bất kể trường hợp nào. Sử dụng cờ chính xác.
Hiển thị gợi ý
Thêm cờ i (không phân biệt chữ hoa chữ thường) bên cạnh g.
Giải pháp khả dụng sau 3 lần thử
Xem lại bài tập
Tìm một khối giữa `<pre>` và `</pre>` ngay cả khi nó chứa dòng mới. Bạn phải sử dụng cờ làm cho dấu chấm cũng khớp với dòng mới.
Hiển thị gợi ý
Thêm cờ s vậy . cũng khớp với dòng mới và sử dụng lười biếng .+? dừng lại ở </pre> đầu tiên.
Giải pháp khả dụng sau 3 lần thử
Thử thách bổ sung
Match sequences of ASCII characters, explicitly excluding digits, using Unicode v-mode properties (flag `v`) and set subtraction syntax `[\p{ASCII}--\p{Nd}]+`.
Hiển thị gợi ý
Sử dụng cờ v và viết tập hợp phép trừ [\\p{ASCII}--\\p{Nd}]+ để loại trừ các số.
Giải pháp khả dụng sau 3 lần thử