Jak przetestować wyrażenie regularne?
- 1.
Wpisz wzorzec i flagi
Podaj wyrażenie (bez ukośników) i włącz potrzebne flagi, np. g dla wszystkich dopasowań lub i dla ignorowania wielkości liter.
- 2.
Wklej tekst testowy
Dopasowania są podświetlane na żywo, a pod spodem widać tabelę z pozycjami i grupami przechwytującymi.
- 3.
Sprawdź zamianę
W polu „Zamiana” użyj $1, $2 lub $<nazwa>, aby zobaczyć wynik String.replace. Gotowe wzorce znajdziesz na dole strony.
Flagi wyrażeń regularnych w JavaScript
| Flaga | Nazwa | Działanie |
|---|---|---|
| g | global | znajduje wszystkie dopasowania, nie tylko pierwsze |
| i | ignoreCase | ignoruje wielkość liter |
| m | multiline | ^ i $ dopasowują początek i koniec każdego wiersza |
| s | dotAll | kropka dopasowuje także znak nowej linii |
| u | unicode | pełna obsługa Unicode, np. \p{L} dla liter z polskimi znakami |
| y | sticky | dopasowanie dokładnie od pozycji lastIndex |
| d | hasIndices | zwraca pozycje grup w dopasowaniu |
Uwaga: w JavaScript \w i \b obejmują tylko litery ASCII, więc „ż” czy „ł” nie są „znakami słowa”. Dla polskich liter użyj [\p{L}] z flagą u.
Grupy, grupy nazwane i zamiana tekstu
Nawiasy ( ) tworzą grupy przechwytujące numerowane od 1. Grupa nazwana ma postać (?<nazwa>…). W zamianie możesz odwołać się do nich jako $1 lub $<nazwa>; $& oznacza całe dopasowanie.
Przykład: wzorzec (\d{2})-(\d{3}) z zamianą $2-$1 zmienia „00-950” na „950-00”. Grupę niezapamiętującą zapiszesz jako (?:…), a podejrzenie w przód jako (?=…).
Gotowe wzorce dla polskich danych
Biblioteka na dole narzędzia zawiera sprawdzone wzorce: adres e-mail, kod pocztowy (\d{2}-\d{3}), PESEL (11 cyfr), NIP (z myślnikami lub bez), numer telefonu z prefiksem +48, URL, datę DD.MM.RRRR oraz IBAN polski. Wszystkie sprawdzają format, nie poprawność merytoryczną - nie liczą sum kontrolnych (PESEL, NIP, IBAN mod 97) ani nie wiedzą, że 31.02 nie istnieje. Do pełnej walidacji użyj walidatorów PESEL, NIP i IBAN.
Ochrona przed katastrofalnym backtrackingiem
Niektóre wzorce, np. (a+)+$ dla tekstu „aaaaaaaaaaaaaaaaaaaaaaaaaaab”, powodują wykładniczy wzrost liczby prób dopasowania i potrafią zawiesić przeglądarkę (zjawisko ReDoS). Tester wykonuje dopasowanie w osobnym wątku (Web Worker) z limitem 2 sekund - po jego przekroczeniu wątek jest przerywany, a Ty widzisz ostrzeżenie zamiast zamrożonej strony. Unikaj zagnieżdżonych kwantyfikatorów i nakładających się alternatyw.
Najczęściej zadawane pytania
Jaki silnik regex używa to narzędzie?
+
Jak dopasować kod pocztowy w regex?
+
Dlaczego regex nie waliduje PESEL ani NIP w pełni?
+
Co znaczy, że wzorzec przekroczył limit czasu?
+
Czy mój tekst jest wysyłany na serwer?
+
Jak dopasować polskie litery?
+
Aktualizacja: