Chuyển đến nội dung chính
Mô-đun 7 · Bài học 1 trong tổng số 425/32 trong khóa học~12 min
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ênHiệu ứng
gToàn cầuTì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).
iBỏ qua trường hợpKhô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.
sChấm tất cả. cũng khớp với dòng mới \n.
uUnicodeXử lý đúng các điểm mã > 0xFFFF và bật \\p{...}.
vChế độ v UnicodeTiệ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]]).
yDínhChỉ khớp từ vị trí lastIndex, không bỏ qua.
dCó 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.
JS
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ặc v) -- 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ập thể dục#regex.m7.l1.e1
Nỗ lực: 0Đang tải…

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.

Đang tải trình chỉnh sửa…
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ập thể dục#regex.m7.l1.e2
Nỗ lực: 0Đang tải…

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.

Đang tải trình chỉnh sửa…
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

tập thể dục#regex.m7.l1.e3
Nỗ lực: 0Đang tải…

Match sequences of ASCII characters, explicitly excluding digits, using Unicode v-mode properties (flag `v`) and set subtraction syntax `[\p{ASCII}--\p{Nd}]+`.

Đang tải trình chỉnh sửa…
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ử