0Pricing
JavaScript Academy · Lekcja

Walidacja i drobne pułapki

Walidowanie całych łańcuchów za pomocą kotwic, unikanie zachłannego dopasowania, używanie granic słów, dodawanie prostych kontroli oraz pamiętanie o /g przy test()

Walidacja i drobne pułapki to bezpłatna lekcja JavaScript Academy na CoddyKit. To lekcja 3 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej JavaScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs JavaScript Academy zawiera 3 lekcji w sumie.

Walidacja całego ciągu

Cel: Bezpieczne przeprowadzanie walidacji bez niespodzianek.

  • Należy używać ^ i $, aby dopasować cały ciąg znaków
  • Należy unikać zachłannego dopasowywania zbyt dużego fragmentu; w razie potrzeby używać leniwego *?
  • Należy używać granic słów \\b
  • Należy uważać na /g używane z test()
Walidacja i drobne pułapki — ilustracja 1

Kotwice w praktyce

Należy dodać ^ i $, aby nie dopuścić do przejścia częściowych dopasowań.

// Validate 4–6 digits ONLY (no spaces, no letters)
function isPin(text) {
  const re = /^\\d{4,6}$/;
  return re.test(text);
}

console.log("1234 ->", isPin("1234"));
console.log("12 34 ->", isPin("12 34"));
console.log("a123 ->", isPin("a123"));
Walidacja i drobne pułapki — ilustracja 2

Unikanie nadmiernego dopasowania

Zachłanne .* przechwytuje najdłuższy zakres; należy dodać ?, aby uzyskać najkrótsze dopasowanie między znacznikami.

// Greedy (.*) vs lazy (.*?)
const text = "say \"hi\" and \"bye\"";

// Greedy: eats too much
const g = text.match(/".*"/);
console.log("greedy:", g && g[0]);

// Lazy: shortest between quotes
const l = text.match(/".*?"/g);
console.log("lazy:", l);
Walidacja i drobne pułapki — ilustracja 3

Granice słów \\b

\\b dopasowuje granice między znakami słowa i znakami nienależącymi do słowa; jest przydatne przy dopasowywaniu całych słów.

// Use \\b to match a whole word (not inside another)
const s = "restart start up";

console.log("has start word?", /\\bstart\\b/.test(s));    // true
console.log("matches restart?", /\\brestart\\b/.test(s));  // true
console.log("start inside restart?", /start/.test("restart")); // true (partial)
Walidacja i drobne pułapki — ilustracja 4

Bezpieczne łączenie sprawdzeń

W przypadku początkujących warto połączyć mały regex z dodatkowymi sprawdzeniami (przycinaniem i maksymalną długością). Należy unikać ogromnych wzorców.

// Small, beginner-friendly email-like check (not RFC-complete)
// Strategy: small regex + extra length checks
function isEmailLite(text) {
  if (typeof text !== "string") return false;
  if (text.length > 254) return false;          // cap length
  const re = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;  // basic shape
  return re.test(text.trim());
}

console.log("ok:", isEmailLite("a@b.co"));
console.log("bad space:", isEmailLite("a @b.co"));
console.log("too basic:", isEmailLite("abc"));
Walidacja i drobne pułapki — ilustracja 5

Pułapka flagi globalnej

Flaga g przesuwa wewnętrzny kursor podczas używania test(). Przy zwykłym uzyskiwaniu wartości logicznych dla osobnych danych wejściowych należy pominąć g.

// Using /g with test() changes lastIndex and can surprise you
const r = /a/g;

console.log("1st:", r.test("a")); // true
console.log("2nd:", r.test("a")); // false (cursor moved)
console.log("3rd:", r.test("a")); // true again

// Safer: avoid /g when repeatedly calling test() on separate strings
function hasA(text) {
  return /a/.test(text); // no g flag
}
console.log("safe:", hasA("a"), hasA("a"));
Walidacja i drobne pułapki — ilustracja 6

Quiz: kotwice w walidacji

Szybkie sprawdzenie: walidacja całego ciągu.

Walidacja i drobne pułapki — ilustracja 7

Podsumowanie

Podsumowanie: Należy walidować całe ciągi za pomocą ^...$, używać leniwego *?, aby unikać nadmiernego dopasowania, dodawać \\b do dopasowywania całych słów, łączyć małe wyrażenia regularne z prostymi dodatkowymi sprawdzeniami oraz unikać /g przy wielokrotnym wywoływaniu test().

Walidacja i drobne pułapki — ilustracja 8

Często zadawane pytania

Czy lekcja „Walidacja i drobne pułapki” jest bezpłatna?

Tak — pełny tekst „Walidacja i drobne pułapki” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu JavaScript Academy, przejdź na CoddyKit PRO. Kurs JavaScript Academy zawiera 3 lekcji w sumie.

Co nauczysz się w „Walidacja i drobne pułapki”?

Walidowanie całych łańcuchów za pomocą kotwic, unikanie zachłannego dopasowania, używanie granic słów, dodawanie prostych kontroli oraz pamiętanie o /g przy test() Ćwiczysz JavaScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć JavaScript Academy?

Nie wymagamy żadnego doświadczenia. JavaScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 3.

Ile czasu zajmuje lekcja „Walidacja i drobne pułapki”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji JavaScript Academy?

Tak. Każda lekcja JavaScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy wyrażeń regularnych — literały, test, kotwice i flagi
  2. Grupy, przechwytywanie i zamiana
  3. Walidacja i drobne pułapki
← Powrót do JavaScript Academy