Lompati ke konten utama
Modul 7 · Pelajaran 1 dari 425/32 dalam kursus~12 min
Pelajaran modul (1/4)

Semua bendera secara detail

Rekap lengkap semua flag yang tersedia di JavaScript modern (ES2024). Bendera adalah karakter tunggal yang mengubah perilaku ekspresi reguler; mereka dapat digabungkan dalam urutan apa pun.

BenderaNamaEfek
gGlobalMenemukan semua kecocokan, bukan hanya yang pertama (wajib untuk matchAll).
iAbaikan kasusTidak peka huruf besar-kecil (termasuk karakter Unicode dengan tanda u/v).
mMultibaris^ dan $ cocok dengan awal/akhir baris, bukan hanya string.
sTitik semua. juga cocok dengan baris baru \n.
uUnikodePenanganan titik kode yang benar > 0xFFFF dan mengaktifkan \\p{...}.
vUnicode v-modePerpanjangan modern u dengan operasi yang ditetapkan ([abc&&[def]]).
yLengketCocok hanya dari posisi lastIndex, tidak boleh dilewati.
dMemiliki indeksHasilnya meliputi indices dengan awal/akhir tiap grup.
JS
const re = /foo/gimu; // global + insensitive + multiline + unicode
re.flags; // "gimu" (always in canonical order: dgimsuvy)

Kombinasi yang khas

  • g + i -- "temukan semuanya, tidak peka huruf besar-kecil". 80% kegunaan praktis.
  • g + m -- untuk mencocokkan baris demi baris dalam teks multibaris.
  • g + s -- "titik cocok dengan apa pun, termasuk baris baru". Berguna untuk mengekstrak blok di beberapa baris.
  • u (atau v) -- selalu jika Anda berhadapan dengan teks dunia nyata dalam bahasa atau emoji apa pun.

Unicode v-mode dan evolusi bendera

Bendera v (tersedia di ES2024) menggantikan u dan memungkinkan operasi lanjutan pada himpunan, seperti perpotongan dan pengurangan kelas karakter (misalnya [\\p{White_Space}&&\\p{ASCII}]).

Cobalah

Latihan#regex.m7.l1.e1
Upaya: 0Memuat…

Temukan semua kemunculan 'ciao' apa pun hurufnya. Gunakan bendera yang benar.

Memuat editor…
Tunjukkan petunjuk

Tambahkan tanda i (tidak peka huruf besar-kecil) di sebelah g.

Solusi tersedia setelah 3 upaya

Tinjau latihan

Latihan#regex.m7.l1.e2
Upaya: 0Memuat…

Temukan blok antara `<pre>` dan `</pre>` meskipun blok tersebut berisi baris baru. Anda harus menggunakan bendera yang membuat titik tersebut juga cocok dengan baris baru.

Memuat editor…
Tunjukkan petunjuk

Tambahkan bendera s jadi. cocok dengan baris baru juga, dan gunakan malas .+? untuk berhenti di </pre> pertama.

Solusi tersedia setelah 3 upaya

Tantangan tambahan

Latihan#regex.m7.l1.e3
Upaya: 0Memuat…

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

Memuat editor…
Tunjukkan petunjuk

Gunakan tanda v dan tuliskan pengurangan himpunan [\\p{ASCII}--\\p{Nd}]+ untuk mengecualikan angka.

Solusi tersedia setelah 3 upaya