Ana içeriğe geç
Modül 7 · Ders 1 ders 4Kurstaki 25/32~12 min
Modül dersleri (1/4)

Tüm bayraklar ayrıntılı olarak

Modern JavaScript'te bulunan tüm bayrakların tam özeti (ES2024). Bayrak, davranışı değiştiren tek bir karakterdir. normal ifade; herhangi bir sırayla birleştirilebilirler.

BayrakİsimEfekt
gKüreselYalnızca ilkini değil tüm eşleşmeleri bulur (matchAll için gereklidir).
iBüyük/küçük harf göz ardıBüyük/küçük harfe duyarlı değildir (u/v bayrağına sahip Unicode karakterler dahil).
mÇok satırlı^ ve $ yalnızca dizeyle değil, satırın başlangıcı/bitişiyle de eşleşir.
sTümünü noktala. aynı zamanda yeni satır \n ile de eşleşir.
uUnicodeKod noktalarının doğru şekilde işlenmesi > 0xFFFF ve \\p{...} etkinleştirilir.
vUnicode v moduAyarlanmış işlemlerle ([abc&&[def]]) u'nin modern uzantısı.
yYapışkanYalnızca lastIndex konumundan itibaren eşleşir, atlama yoktur.
dEndeksleri varSonuç, her grubun başlangıcı/bitişiyle birlikte indices değerini içerir.
JS
const re = /foo/gimu; // global + insensitive + multiline + unicode
re.flags; // "gimu" (always in canonical order: dgimsuvy)

Tipik kombinasyonlar

  • g + i -- "her şeyi bul, büyük/küçük harfe duyarlı değil". Pratik kullanımların %80'i.
  • g + m -- çok satırlı metinde satır satır eşleştirmek için.
  • g + s -- "nokta, yeni satırlar dahil her şeyle eşleşir". Birden fazla satırdaki blokları çıkarmak için kullanışlıdır.
  • u (veya v) -- Herhangi bir dilde veya emojide gerçek dünyaya ait metinlerle uğraşıyorsanız her zaman.

Unicode v-modu ve işaret evrimi

v bayrağı (ES2024'te mevcuttur) u'nin yerini alır ve karakter sınıfı kesişimi ve çıkarma gibi kümeler üzerinde gelişmiş işlemlere olanak tanır (ör. [\\p{White_Space}&&\\p{ASCII}]).

Deneyin

Egzersiz#regex.m7.l1.e1
Denemeler: 0Yükleniyor…

Büyük/küçük harfe bakılmaksızın 'ciao'nun tüm oluşumlarını bulun. Doğru bayrağı kullanın.

Düzenleyici yükleniyor…
İpucu göster

g'nin yanına i bayrağını (büyük/küçük harfe duyarlı) ekleyin.

3 denemeden sonra çözüm mevcut

Alıştırmayı gözden geçirin

Egzersiz#regex.m7.l1.e2
Denemeler: 0Yükleniyor…

Yeni satırlar içerse bile `<pre>` ve `</pre>` arasında bir blok bulun. Noktanın aynı zamanda yeni satırlarla eşleşmesini sağlayan bayrağı kullanmalısınız.

Düzenleyici yükleniyor…
İpucu göster

s bayrağını bu şekilde ekleyin. yeni satırlarla da eşleşir ve lazy .+? ilk başta durmak için </pre>.

3 denemeden sonra çözüm mevcut

Ek zorluk

Egzersiz#regex.m7.l1.e3
Denemeler: 0Yükleniyor…

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

Düzenleyici yükleniyor…
İpucu göster

Sayıları hariç tutmak için v bayrağını kullanın ve set çıkarma [\\p{ASCII}--\\p{Nd}]+ yazın.

3 denemeden sonra çözüm mevcut