Lekcje modułu (1/4)
Wszystkie flagi w szczegółach
Kompletne podsumowanie wszystkich flag dostępnych w nowoczesnym JavaScript (ES2024). Flaga to pojedynczy znak, który modyfikuje zachowanie wyrażenia regularnego; można je łączyć w dowolnej kolejności.
| Flaga | Nazwa | Działanie |
|---|---|---|
g | Global | Znajduje wszystkie dopasowania, a nie tylko pierwsze (wymagane dla matchAll). |
i | Ignore case | Ignoruje wielkość liter (w tym znaki Unicode przy użyciu flagi u/v). |
m | Multiline | ^ i $ dopasowują początek/koniec linii, a no nie tylko całego ciągu znaków. |
s | Dot all | Kropka . dopasowuje również znak nowej linii \n. |
u | Unicode | Prawidłowa obsługa punktów kodowych > 0xFFFF oraz włączenie obsługi \\p{...}. |
v | Unicode v-mode | Nowoczesne rozszerzenie flagi u o operacje na zbiorach ([abc&&[def]]). |
y | Sticky | Dopasowuje tylko od pozycji lastIndex, bez pomijania znaków. |
d | Has indices | Wynik zawiera właściwość indices z pozycją początku/końca każdej grupy. |
const re = /foo/gimu; // global + ignore case + multiline + unicode
re.flags; // "gimu" (zawsze w kolejności kanonicznej: dgimsuvy)Typowe kombinacje
g+i-- "znajdź wszystko, ignorując wielkość liter". 80% praktycznych zastosowań.g+m-- do dopasowywania linia po linii w tekście wielolinijkowym.g+s-- "kropka dopasowuje wszystko, w tym znaki nowej linii". Przydatne do wyodrębniania bloków tekstu rozciągających się na wiele linii.u(lubv) -- zawsze, gdy przetwarzasz rzeczywisty tekst w dowolnym języku lub emotikony.
Tryb Unicode v-mode i ewolucja flag
Flaga v (dostępna od ES2024) zastępuje flagę u i umożliwia zaawansowane operacje na zbiorach, takie jak iloczyn (przecięcie) i różnica klas znaków (np. [\\p{White_Space}&&\\p{ASCII}]).
Spróbuj sam
Znajdź wszystkie wystąpienia słowa 'ciao' bez względu na wielkość liter. Użyj odpowiedniej flagi.
Pokaż wskazówkę
Dodaj flagę i (ignorowanie wielkości liter) obok g.
Rozwiązanie dostępne po 3 próbach
Ćwiczenie powtórzeniowe
Znajdź blok pomiędzy `<pre>` a `</pre>`, nawet jeśli zawiera znaki nowej linii. Musisz użyć flagi, która sprawia, że kropka dopasowuje również znaki nowej linii.
Pokaż wskazówkę
Dodaj flagę s, aby kropka dopasowywała również znaki nowej linii, oraz użyj leniwego .+?, aby zatrzymać się na pierwszym </pre>.
Rozwiązanie dostępne po 3 próbach
Dodatkowe wyzwanie
Dopasuj sekwencje znaków ASCII, jawnie wykluczając cyfry, przy użyciu właściwości trybu Unicode v-mode (flaga `v`) i składni różnicy zbiorów `[\p{ASCII}--\p{Nd}]+`.
Pokaż wskazówkę
Użyj flagi v i zapisz różnicę zbiorów [\p{ASCII}--\p{Nd}]+, aby wykluczyć cyfry.
Rozwiązanie dostępne po 3 próbach