Przejdź do treści
HNarzędzia
pl
Kategorie

Tester wyrażeń regularnych (regex) online - JavaScript

Wpisz wyrażenie regularne i tekst - dopasowania podświetlają się od razu, a tabela pokazuje grupy numerowane i nazwane. Ochrona przed zawieszeniem strony przy niebezpiecznych wzorcach.

  • Za darmo
  • Bez rejestracji
  • Prywatne
  • Działa lokalnie
Flagi

Gotowe wzorce (Polska)

Kliknij, aby wstawić wzorzec i przykładowy tekst.

Adres e-mail
/[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+(?:\.[A-Za-z0-9-]+)*\.[A-Za-z]{2,}/g

Część lokalna, @, domena z co najmniej jedną kropką i końcówką min. 2 litery. Przybliżony wzorzec - pełna specyfikacja RFC 5322 jest znacznie bardziej złożona.

Polski kod pocztowy
/\b\d{2}-\d{3}\b/g

Dwie cyfry, myślnik, trzy cyfry (00-950). \b pilnuje granic słowa. Wzorzec nie sprawdza, czy kod faktycznie istnieje.

PESEL (format)
/\b\d{11}\b/g

Dokładnie 11 cyfr. Sprawdza tylko format - nie sumę kontrolną ani datę urodzenia; użyj walidatora PESEL.

NIP (format)
/\b(?:PL\s?)?(?:\d{3}-\d{3}-\d{2}-\d{2}|\d{3}-\d{2}-\d{2}-\d{3}|\d{10})\b/g

Formaty 123-456-78-90, 123-45-67-890 lub 10 cyfr, opcjonalnie z prefiksem PL. Nie liczy sumy kontrolnej.

Polski numer telefonu
/(?<!\d)(?:(?:\+|00)48[ -]?)?(?:\d{3}([ -]?)\d{3}\1\d{3}|\d{2}[ -]?\d{3}[ -]?\d{2}[ -]?\d{2})(?!\d)/g

9 cyfr (komórkowy 600 123 456 lub stacjonarny 22 123 45 67), opcjonalnie z +48 lub 0048. Separatory - spacja lub myślnik; w numerze komórkowym muszą być spójne (backreference \1).

Adres URL (http/https)
/https?:\/\/(?:[a-z0-9-]+\.)+[a-z]{2,}(?::\d{2,5})?(?:[\/?#][^\s]*)?/gi

Protokół http(s)://, domena z TLD, opcjonalny port, ścieżka, query i fragment (do pierwszej spacji). Flaga i dla wielkich liter.

Data DD.MM.RRRR
/\b(?:0[1-9]|[12]\d|3[01])\.(?:0[1-9]|1[0-2])\.\d{4}\b/g

Dzień 01-31, miesiąc 01-12, rok 4 cyfry. Sprawdza format - nie wie, że 31.02 nie istnieje.

IBAN polski
/\bPL\s?\d{2}(?:\s?\d{4}){6}\b/g

PL + 2 cyfry kontrolne + 24 cyfry (6 grup po 4), opcjonalnie ze spacjami. Nie weryfikuje sumy kontrolnej mod 97.

Jak przetestować wyrażenie regularne?

  1. 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. 2.

    Wklej tekst testowy

    Dopasowania są podświetlane na żywo, a pod spodem widać tabelę z pozycjami i grupami przechwytującymi.

  3. 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

FlagaNazwaDziałanie
gglobalznajduje wszystkie dopasowania, nie tylko pierwsze
iignoreCaseignoruje wielkość liter
mmultiline^ i $ dopasowują początek i koniec każdego wiersza
sdotAllkropka dopasowuje także znak nowej linii
uunicodepełna obsługa Unicode, np. \p{L} dla liter z polskimi znakami
ystickydopasowanie dokładnie od pozycji lastIndex
dhasIndiceszwraca 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?

+
Wbudowany silnik JavaScript (RegExp) Twojej przeglądarki, czyli ten sam, który działa w Node.js i na stronach WWW. Składnia różni się nieco od PCRE (PHP, Python), np. brak niektórych konstrukcji.

Jak dopasować kod pocztowy w regex?

+
Wzór: \b\d{2}-\d{3}\b - dwie cyfry, myślnik i trzy cyfry, z granicami słowa. Wstaw go z biblioteki gotowych wzorców.

Dlaczego regex nie waliduje PESEL ani NIP w pełni?

+
Wyrażenia regularne sprawdzają wyłącznie wzorzec znaków. Poprawny PESEL i NIP mają dodatkowo cyfrę kontrolną liczoną z wag, której nie da się sensownie zapisać regexem. Użyj walidatora PESEL lub NIP.

Co znaczy, że wzorzec przekroczył limit czasu?

+
Wyrażenie powoduje katastrofalny backtracking - liczba prób rośnie wykładniczo wraz z długością tekstu. Uprość wzorzec, usuń zagnieżdżone kwantyfikatory lub użyj bardziej konkretnych klas znaków.

Czy mój tekst jest wysyłany na serwer?

+
Nie. Całe dopasowanie wykonuje się lokalnie w Twojej przeglądarce.

Jak dopasować polskie litery?

+
Użyj flagi u i klasy \p{L}, np. [\p{L}]+ dopasuje słowa z „ą, ę, ł, ż”. Klasa \w w JavaScript obejmuje tylko znaki ASCII.

Aktualizacja: